服务器之家

服务器之家 > 正文

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

时间:2021-04-25 14:11     来源/作者:C语言教程网

首先,我们定义一个类:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
 }
 }

写一个测试函数:

?
1
2
3
4
5
6
7
8
9
/// <summary>
/// 获取类的public static/const成员的值
/// </summary>
/// <typeparam name="T"></typeparam>
public void TestGetValue<T>()
{
 var tableName = typeof(T).GetField("TableName").GetValue(null);
 Console.WriteLine(tableName);
}

调用测试接口:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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成员的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部