C#如何获取类中成员的数据类型

C#如何获取类中成员的数据类型

需求:根据用户在窗体上选择的编号n,来更改class类的实例中,第n个成员变量的值
做法:我现在用反射的方法可以遍历类中的每个变量,当遍历到第n个成员变量时,给当前成员变量赋值。
问题:成员变量的类型不一样,有float,int,short。如果类型一致就可以赋值,类型不一致就不能赋值。现在怎么才能强制转换成目标类型,或者说,我怎么才能获得成员变量的数据类型。(我用了try和catch,三种类型可以选一个正确的,但是效率太低了)

你用反射,那你获取PropertyInfo会告诉你当前属性是什么类型的。PropertyType 这个是指示什么数据类型。
https://msdn.microsoft.com/zh-cn/library/system.reflection.propertyinfo_properties(v=vs.80).aspx追问

property.SetValue(obj,Convert.ChangeType(value,property.PropertyType),null);
我最后找到了,用的这句。
还是谢谢你!

温馨提示:答案为网友推荐,仅供参考
相似回答