的靜態方法我現在有這樣的事情:訪問泛型參數
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