§ ITPOW >> 文档 >> C#

说说 C# 的 GetProperties() 和 PropertyInfo

作者:vkvi 来源:ITPOW(原创) 日期:2023-9-12

我们先看一个 C# 例子:

PropertyInfo[] pis = itpow.GetType().GetProperties();

这里面名字取得不好,右边是 GetProperties(),并不是 GetPropertyInfos(),这里导致我们误以为返回的是属性,既然是属性,那一定包含属性名称、属性类型、属性值了。

错。

这里返回的是属性信息

取属性名

通过循环 pis,取 pi.Name,就可以获得属性名了。

取属性值

由于前面说了,返回的是属性信息,并不是属性。所以取属性值要麻烦点。

pi.GetValue(itpow);

pi 是指具体的哪一个属性信息,传入参数为取哪个对象的属性值。

SetValue 未找到属性设置方法

SetValue 方法也简单,跟 GetValue 类似,但是有时候会遇到错误:未找到属性设置方法

请确定属性名称,以及该属性是否 CanWrite同理 GetValue 最好也先判断 CanRead

相关文章