加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

利用反射获得类的public static/const成员的值实例

发布时间:2020-12-16 05:15:28 所属栏目:百科 来源:网络整理
导读:首先,我们定义一个类: class CDynamic {#if true public const string TableName = "p_battlerecord"; // OK //public static string TableName = "p_battlerecord"; // OK#else public static string TableName // 用属性不行 { get { return "hello"; }

首先,我们定义一个类:

class CDynamic
 {
#if true
 public const string TableName = "p_battlerecord"; // OK
 //public static string TableName = "p_battlerecord"; // OK
#else
 public static string TableName   // 用属性不行
 {
  get { return "hello"; }
 }
#endif

 public string Name { get; set; }

 public int Add(int a,int b)
 {
  return a + b;
 }
 }

写一个测试函数:

 /// <summary>
 /// 获取类的public static/const成员的值
 /// </summary>
 /// <typeparam name="T"></typeparam>
 public void TestGetValue<T>()
 {
  var tableName = typeof(T).GetField("TableName").GetValue(null);
  Console.WriteLine(tableName);
 }

调用测试接口:

public void test1()
 {
#if false
  var d = new CDynamic();    // 简化演示,未使用反射
  var add = typeof(CDynamic).GetMethod("Add");
  var ret = add.Invoke(d,new object[] { 1,3 });
#else
  dynamic d = new CDynamic();    // 使用dynamic动态绑定
  var ret = d.Add(1,3);
  //d.Hello();      // 编译通过,运行将出错(未包含Hello()的定义)

  TestGetValue<CDynamic>();
#endif

  //Console.WriteLine("sum = {0},{1}",ret,s);
 }

完成!

以上这篇利用反射获得类的public static/const成员的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读