如何獲得類型的成員,忽略其的值?C#獲取成員的類型忽略它的值?
public static class Program
{
public static String a {set; get;}
public static void Main()
{
a = null;
a.GetType(); //Cant do that, it's null, how can i get "String"?
}
}
如何獲得類型的成員,忽略其的值?C#獲取成員的類型忽略它的值?
public static class Program
{
public static String a {set; get;}
public static void Main()
{
a = null;
a.GetType(); //Cant do that, it's null, how can i get "String"?
}
}
得到它的類型而不是一個實例的唯一方法是使用聲明類型:
var type = typeof(Program)
.GetProperty("a", BindingFlags.Static | BindingFlags.Public)
.PropertyType;
這很好,我可以這樣做,而不用字符串訪問成員,而是使用成員的引用本身呢? – user3325976 2014-08-30 19:22:17
或者,我可以得到引用成員的名字嗎? – user3325976 2014-08-30 19:22:52
@ user3325976:可以,使用lambda(而不是'a',寫入'()=> a')和表達式樹。 – 2014-08-30 19:30:12
你需要使用它之前聲明變量。 – 2014-08-30 19:16:26
@AsadAli你是什麼意思? – user3325976 2014-08-30 19:16:56
變量'a'尚未聲明,因此您無法使用它。如果您嘗試使用'a'屬性,它將不會返回任何內容。 – 2014-08-30 19:17:30