我正在使用ReSharper(旧版本),以前在我使用PropertyInfo.DeclaringType
时会提醒我可能会为null
。
起初和第二次看来这对我来说没有意义。 这是真的吗,还是ReSharper有点愚蠢,没有注意到它是一个PropertyInfo
,而不是一个一般的MemberInfo
?
我正在使用ReSharper(旧版本),以前在我使用PropertyInfo.DeclaringType
时会提醒我可能会为null
。
起初和第二次看来这对我来说没有意义。 这是真的吗,还是ReSharper有点愚蠢,没有注意到它是一个PropertyInfo
,而不是一个一般的MemberInfo
?
PropertyInfo.DeclaringType
属性继承自MemberInfo.DeclaringType
,并且来自文档:
因此,在这种情况下,警告看起来很正常。如果
MemberInfo
对象是全局成员(也就是说,如果它是从Module.GetMethods
方法获取的,该方法返回模块上的全局方法),则返回的DeclaringType
将为null
。
如果在模块中定义了属性,则它可以是 null
。在C#中,您不能定义这样的方法和属性而不使用反射(请参见PropertyBuilder
)。但是,如果引用了VB.NET程序集,则可以具有此类成员。