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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 怎么判断一个字符串是不是是一个类的字段属性相关的知识,希望对你有一定的参考价值。

例如 string s = "num"; 然后我有一个A类 class A public int num get;set; 如此我能通过s的值去访问A类的num字段么?
实例化下:A a=new A(); a.num=0;
怎么访问这个值?

参考技术A 反射(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);

本回答被提问者采纳

sql怎么判断一个值是不是为空

空分为空字符或者null

 

如果是null的话

select * from 表名 where 字段名 is null

如果是空字符的话

select * from 表名 where 字段名=\'\'
参考技术A select * from 表 where isnull(字段,'')=''

以上是关于C# 怎么判断一个字符串是不是是一个类的字段属性的主要内容,如果未能解决你的问题,请参考以下文章

如何判断一个类是不是支持某属性和方法以及如何判断IOS的版本

c#封装和类的属性课堂上机练习

c# 的lamda表达式怎么判断是不是为空

如何判断Dynamic类型的属性是不是存在

php怎么判断字段是不是为空

C#判断是不是含有某个值