gpt4 book ai didi

c# - TypeDescriptor.GetProperties() 与 Type.GetProperties()

转载 作者:IT王子 更新时间:2023-10-29 04:08:11 27 4
gpt4 key购买 nike

考虑以下代码。

Object obj;
PropertyDescriptorCollection A = TypeDescriptor.GetProperties(obj);
PropertyInfo[] B = obj.GetType().GetProperties();

我试图了解 A 和 B 之间的区别。据我了解,TypeDescriptor.GetProperties() 将返回自定义 TypeDescriptor 属性,其中 Type.GetProperties() 只会返回对象的内在“真实”属性。这是正确的吗?如果 obj 没有任何自定义 TypeDescriptor 属性,那么它只是默认返回对象的文字内在属性。

最佳答案

obj.GetType().GetProperties() 不返回 PropertyDescriptorCollection,它返回 System.Reflection.PropertyInfo[]。正如您所建议的那样,PropertyInfo 类只表示在对象上创建的实际属性。 PropertyDescriptorPropertyDescriptor 类的自定义具体子类(由定义自定义描述符的类型实现),或者是密封内部类 ReflectPropertyDescriptor 的实例 使用 PropertyInfo 类提供属性的动态调用。

因此,对于未定义自定义描述符的类,您将在功能上获得相同的对象,尽管 PropertyDescriptor 正在抽象掉 PropertyInfo

关于c# - TypeDescriptor.GetProperties() 与 Type.GetProperties(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com