在C#中,靜態(tài)變量是指在類級別聲明的變量,它們屬于類而不是類的實例。靜態(tài)變量是在程序運行時一直存在的,直到程序結(jié)束。反射是C#中的一個強(qiáng)大功能,它可以動態(tài)地獲取類的信息、調(diào)用方法、訪問屬性等。
靜態(tài)變量與反射結(jié)合在一起可以實現(xiàn)一些有趣的功能,例如可以通過反射動態(tài)地獲取和設(shè)置靜態(tài)變量的值。以下是一些技術(shù)細(xì)節(jié)和用例:
Type type = typeof(MyClass);
FieldInfo field = type.GetField("myStaticVariable");
var value = field.GetValue(null);
這樣就可以獲取類MyClass中名為myStaticVariable的靜態(tài)變量的值。
Type type = typeof(MyClass);
FieldInfo field = type.GetField("myStaticVariable");
field.SetValue(null, 10);
這樣就可以將類MyClass中名為myStaticVariable的靜態(tài)變量的值設(shè)置為10。
Type type = typeof(MyClass);
MethodInfo method = type.GetMethod("MyStaticMethod");
method.Invoke(null, null);
這樣就可以執(zhí)行類MyClass中名為MyStaticMethod的靜態(tài)方法。