Resharper tells me that MemberInfo.DeclaringType can never be null:
However when that code is run, the text "Top level member" is printed. I don't get it, what's wrong here?
Resharper tells me that MemberInfo.DeclaringType can never be null:
However when that code is run, the text "Top level member" is printed. I don't get it, what's wrong here?
Microsoft Code Contracts states that it is never null.
// System.Reflection.MemberInfo
public virtual Type DeclaringType
{
get
{
Contract.Ensures(Contract.Result<Type>() != null, null, "Contract.Result<Type>() != null");
Type result;
return result;
}
}
So ReSharper relies on Code Contracts here.
Resharper is simply wrong here.
MemberInfo
is anabstract
type and it's possible for an arbitrary implementation to return whatever it pleases includingnull
Example: