You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C#的Type.GetProperties会返回抽象类PropertyInfo的数组?

关于Type.GetProperties()返回抽象类数组的疑问解答
  • 这不是文档错误,Type.GetProperties()确实返回System.Reflection.PropertyInfo[]类型的数组,但数组里的元素是PropertyInfo的具体子类实例,而非抽象类本身的实例。
  • .NET反射框架内部会创建PropertyInfo的具体派生类(比如RuntimePropertyInfo,不同.NET运行时可能有不同的实现类),这些子类继承自抽象的PropertyInfo,并实现了所有抽象成员。
  • 抽象类的限制是不能直接实例化,但完全可以用抽象类类型来引用它的子类实例,这是面向对象多态的典型用法。所以返回PropertyInfo[]是完全合理的——你可以通过这些抽象类型的引用,调用PropertyInfo定义的所有方法和属性,底层实际执行逻辑的是具体子类实例。

内容的提问来源于stack exchange,提问作者Karl Gardner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:09:54