PropertyInfo.DeclaringType真的可以为null吗?
我正在使用ReSharper(旧版本),当我使用PropertyInfo.DeclaringType
时它曾警告我它可以为null
。
在第一眼和第二眼看来,这对我没有意义。 这是真的,还是ReSharper有点愚蠢,并没有注意到它是一个PropertyInfo
,而不是一般的MemberInfo
?
PropertyInfo.DeclaringType
属性inheritance自MemberInfo.DeclaringType
和文档 :
如果
MemberInfo
对象是全局成员(即,如果它是从Module.GetMethods
方法获取的,它返回模块上的全局方法),则返回的DeclaringType
将为null
。
因此,在这种情况下,警告似乎很好。
如果在模块中定义属性,则它可以为null
。 在C#中,如果没有reflection,则无法定义此类方法和属性(请参阅PropertyBuilder
)。 但是,如果您引用VB.NET程序集,它可以有这样的成员。