假設我有兩個包含靜態變量XmlTag的類。第二類繼承自第一類。我有一個模板方法,需要根據它使用的類型來獲取XmlTag。什麼是最好的方式來實現這一點,而不必創建一個類型的實例?這裏有一個例子(不會編譯),應該有希望說明我在說什麼。訪問靜態變量的模板方法問題
class A{
public static readonly string XmlTag = "AClass";
}
class B : A {
public static readonly string XmlTag = "BClass";
}
此方法當前無效..靜態變量顯然無法從Type參數中訪問。
string GetName<T>(T AClass) where T : A
{
return T.XmlTag;
}
謝謝你的回覆。你的文章是一個有趣的閱讀。我的問題很簡單,但我很難想出一個好的解決方案:我有幾個子類,每個子類都有自己獨特的XML標籤常量。我有一個泛型方法Load(),它接受任何這些子類,並從XmlNode中加載該類的實例。 Load()需要根據正在使用的類型獲取xml標籤,以便知道要查找哪些xml標籤。 – Mav3rick 2009-07-02 20:25:36
只有在找到xml標籤後纔會實例化子類。 – Mav3rick 2009-07-02 20:33:03