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