System.Type
包含UnderlyingSystemType
属性。 Msdn states表示:
表示公共语言运行库提供的类型 代表这种类型。
在大多数情况下,此属性只返回当前的Type
实例。
我的问题是,此属性不在什么情况下会返回当前的Type
实例本身。在这些情况下,当前的Type
实例和返回的基础系统类型是什么类型的?
答案 0 :(得分:6)
说实话,我从来没有自己做过,但我知道可以创建自己的RuntimeType
类似于指定类型的定义。
如果您注意到Type
类是抽象的并且有很多抽象的成员。会发生什么是你的类型(无论它是什么)自动创建从RuntimeType
类派生的Type
并为你的类型实现它。
因此,在orindary UnderlyingSystemType
的情况下,属性RuntimeType
将返回Type
属性相等的值,在覆盖实现的情况下,相反,(这是为了影响重新感知行为,但我重复我个人之前从未这样做过,会返回用户定义的类型值。
编辑
实际上,评论中提供的链接是一个很好的链接: