C#6 null传播当object为null时设置的值

wis*_*ter 6 c# c#-6.0 null-propagation-operator

var result = myObject?.GetType();
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*zek 9

假设您的对象没有隐藏默认object.GetType定义:GetType返回Type,这是一个引用类型,因此null将返回,result并将被推断为类型Type.

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


Cam*_*n E 6

结果应该是null因为?操作员短路操作.