利用反射获得类的public static/const成员的值实例
首先,我们定义一个类:
classCDynamic { #iftrue publicconststringTableName="p_battlerecord";//OK //publicstaticstringTableName="p_battlerecord";//OK #else publicstaticstringTableName//用属性不行 { get{return"hello";} } #endif publicstringName{get;set;} publicintAdd(inta,intb) { returna+b; } }
写一个测试函数:
///<summary> ///获取类的publicstatic/const成员的值 ///</summary> ///<typeparamname="T"></typeparam> publicvoidTestGetValue<T>() { vartableName=typeof(T).GetField("TableName").GetValue(null); Console.WriteLine(tableName); }
调用测试接口:
publicvoidtest1() { #iffalse vard=newCDynamic();//简化演示,未使用反射 varadd=typeof(CDynamic).GetMethod("Add"); varret=add.Invoke(d,newobject[]{1,3}); #else dynamicd=newCDynamic();//使用dynamic动态绑定 varret=d.Add(1,3); //d.Hello();//编译通过,运行将出错(未包含Hello()的定义) TestGetValue<CDynamic>(); #endif //Console.WriteLine("sum={0},{1}",ret,s); }
完成!
以上这篇利用反射获得类的publicstatic/const成员的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。