我想訪問通用函數中引入的類型的靜態字段。但是編譯器總是給我這個錯誤訪問通用函數中的類型名稱的靜態字段
「T」是一個「類型參數」,這是不 在給定上下文
有效這裏是代碼。
public class A
{
public static int Num = 1;
public int GetClassNum<T>() where T : A
{
//return T.Num;
//return default(T).Num;
//return what???
}
}
public class B : A
{
public static int Num = 2;
}
public class C : A
{
public static int Num = 3;
}
我懷疑這與接口通常用於過濾通用函數中的typename的事實有關。或者它必須永遠是?在這種情況下,不應該有靜態字段。有什麼辦法可以實現?
好的,但如何不通過輸入作爲參數? – 2010-11-01 09:48:04
您需要具有該類型的實例才能獲取其屬性。 – 2010-11-01 09:49:29