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