利用反射获得类的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成员的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。