《c# 通过反射获取类的字段值》由会员分享,可在线阅读,更多相关《c# 通过反射获取类的字段值(4页珍藏版)》请在金锄头文库上搜索。
1、FieldInfo.GetValue 方法在派生类中被重写时,返回给定对象支持的字段的值。命名空间: System.Reflection程序集: mscorlib(在 mscorlib.dll 中)如果该字段是静态的,则忽略 obj。对于非静态字段,obj 应是继承或声明该字段的类的实例。请注意,GetValue 的返回类型为 Object。例如,如果此字段包含一个 Boolean 基元值,则返回带有相应 Boolean 值的 Object 的实例。在返回该值以前,GetValue 将检查用户是否有访问权限。静态字段: obj.GetType().GetField(字段名).GetValue(
2、null);实例非静态字段:typeof(类名).GetField( 字段名,BindingFlags 标识).GetValue(对象实例变量);示例:获取静态字段的值class MyClasspublic static String val = test;public static void Main()FieldInfo myf = typeof(MyClass).GetField(val);Console.WriteLine(myf.GetValue(null);val = hi;Console.WriteLine(myf.GetValue(null);示例:获取对象实例的字段值publ
3、ic class MyClasspublic string myFieldA;public string myFieldB; public MyClass()myFieldA = A public field;myFieldB = Another public field;public class FieldInfo_GetValuepublic static void Main() MyClass myInstance = new MyClass();Type myType = typeof(MyClass);try/ Get the FieldInfo of MyClass.FieldIn
4、fo myFields = myType.GetFields(BindingFlags.Public | BindingFlags.Instance);Console.WriteLine(n 显示0 类型实例各字段的值.n, myType);for(int i = 0; i GetEventKeysList( Component issuer )returnfrom key in issuer.GetType( ).GetFields( BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy )where key.Name.StartsWith( Event )select key.Name;