新的.NET4.5 API在IntrospectionExtensions类中具有以下逻辑
public static TypeInfo GetTypeInfo(this Type type)
{
if (type == (Type) null)
throw new ArgumentNullException("type");
IReflectableType reflectableType = (IReflectableType) type;
if (reflectableType == null)
return (TypeInfo) null; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< HERE!
else
return reflectableType.GetTypeInfo();
}
为什么此方法无法访问代码?这是一个错误还是故意做的?
答案 0 :(得分:6)
混淆是由==
类定义的Type
运算符引起的。
如果查看IL,您将看到调用运算符而不是ReferenceEquals
。
L_0002: call bool System.Type::op_Equality(class System.Type, class System.Type)
所以代码实际上是可以访问的:)