的静态方法我现在有这样的事情:访问泛型参数
abstract class BaseClass {
public abstract string title();
}
class Derived1 : BaseClass {
public override string title() { return "D1"; }
}
class Derived2 : BaseClass {
public override string title() { return "D2"; }
}
class Receiver<T> where T : BaseClass {
private T obj;
public string objTitle() { return obj.title(); }
}
我遇到的问题是,如果obj
是null
,objTitle
抛出一个空引用异常。在这种情况下,我可以保证title
将始终为给定派生类型返回相同的字符串;有没有办法让Receiver
能够访问它的通用参数T
?我的直觉是使用static
,但我不知道有什么方法可以使Reciever
可见的静态;没有办法制定指定它的基类或约束。
哪个类是Derived1和Derived2派生自?基础?为什么不决定类Receiver必须在构造函数中接收obj? –
它确实在构造函数中接收了'obj',但不能保证它是非空的。 – Lucretiel