C# 怎么判断一个字符串是否是一个类的字段属性

例如strings="num";然后我有一个A类classA{publicintnum{get;set;}}如此我能通过s的值去访问A类的num字段么?实例化下:Aa=n... 例如 string s = "num"; 然后我有一个A类 class A { public int num {get;set;} } 如此我能通过s的值去访问A类的num字段么?
实例化下:A a=new A(); a.num=0;
怎么访问这个值?
展开
 我来答
lzuxiaolong
推荐于2017-11-27 · TA获得超过224个赞
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:88.1万
展开全部
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。
Type t = typeof(A);
FieldInfo field = t.GetField(s); //这里s就是你想要num

http://visionsky.blog.51cto.com/733317/368576/
追问
大哥你这个方法不行,我之前就是这种方法。这个方式适合查询类的字段已赋值的,通过实例化赋值的这种方法查不到。
追答
public object ContainProperty(object instance, string propertyName)
{
if (instance != null && !string.IsNullOrEmpty(propertyName))
{
PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
if (_findedPropertyInfo != null)
return _findedPropertyInfo.GetValue(instance, null);
}
return null;
}

A a = new A();
a.Num = 10;
string s = "Num";
object result = ContainProperty(a, s);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式