您的位置:首页 > 其它

怎么通过反射的方式获取指定变量名称的值呢?比如说一个const类型的常量:const string aa=123

2016-09-21 13:53 393 查看
c#中的静态变量,怎么通过反射的方式获取指定变量名称的值呢?比如说一个const类型的常量:con

c#中的静态变量,怎么通过反射的方式获取指定变量名称的值呢?比如说一个const类型的常量:const string aa=123,我现在在另外一个类里面要动态的根据常量名aa去取它的值,能取么? const可能不行,因为是编译时常量, 那么readonly定义的静态常量应该可以吧?...
c#中的静态变量,怎么通过反射的方式获取指定变量名称的值呢?比如说一个const类型的常量:const string aa=123,我现在在另外一个类里面要动态的根据常量名aa去取它的值,能取么? const可能不行,因为是编译时常量, 那么readonly定义的静态常量应该可以吧? 那应该怎么做呢? 说白了就是,怎么反射一个静态的类级常量属性?先谢谢各位大神了!
展开


eatonfang
| 浏览 1408 次
2015-06-11 11:29

2015-06-11 12:41

最佳答案

追问

有不循环,直接根据属性名变量一下子取出来的么?


追答

using System.Linq;

// 取出 StaticPer 属性的值

var value = type.GetFields().FirstOrDefault(f => f.Name == "StaticPer").GetValue(obj);
Console.WriteLine(value);


本回答由提问者推荐
评论
赞0

踩0





slam2012

采纳率:100% 擅长:
C#/.NET

其他回答

都是静态类了,里面的属性值基本都定了,反射它有什么意义

追问

晕,因为我取值用的属性名是动态的,不是代码里面写死了取什么名字的属性值!


追答

一般的静态的,只有一个对象,不会出现多个对象,在使用过程中,直接用类名来调用就是了,没必要去反射了!!除非你的对象是非静态的,每次用的时候都要去new,那么可能出现不不同的对象了,这个反射才会有意义的!!


追问

估计你没碰到这种需求,说了取值的属性名字是动态拼成的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐