C# 6 空传播当对象为空时设置什么值

C# 6 null propagation what value is set when object is null

var result = myObject?.GetType();

在这种情况下,如果 myObject 为空,Result 的值是多少?

假设你的对象没有隐藏默认的object.GetType定义:GetTypereturnsType,这是一个引用类型,所以null将是returned,并且 result 将被推断为 Type.

类型

如果你的对象有一个隐藏 object.GetType 的方法,它也会 return null,但是为 result 推断的类型可能会改变:它要么是TResult 如果该方法 return 是引用类型 TResult,或者 Nullable<TResult> 如果它 return 是类型 TResult 的值类型。

结果应该是 null 因为 ? 运算符短路了操作。