MemberInfo.DeclaringType上出现奇怪的Resharper警告

| Resharper告诉我MemberInfo.DeclaringType永远不能为null: 但是,运行该代码时,将打印文本“顶级成员”。我不明白,这是怎么了?     
已邀请:
Resharper在这里根本是错误的。
MemberInfo
abstract
类型,任意实现都可以返回任意值,包括
null
例:
class EvilMemberInfo : MemberInfo
{
    public override System.Type DeclaringType
    {
        get { return null; }
    }

    // Rest omitted for brevity
}
    
Microsoft Code Contracts声明它永远不会为null。
// System.Reflection.MemberInfo
public virtual Type DeclaringType
{
    get
    {
        Contract.Ensures(Contract.Result<Type>() != null, null, \"Contract.Result<Type>() != null\");
        Type result;
        return result;
    }
}
因此,ReSharper在此依赖于代码合同。     

要回复问题请先登录注册