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

时间:2015-12-03 01:29:30

标签: c# c#-6.0 null-propagation-operator

var result = myObject?.GetType();

在这种情况下,如果myObject为空,那么结果的值是什么?

2 个答案:

答案 0 :(得分:9)

假设您的对象未隐藏默认object.GetType定义:GetType返回Type,这是一种引用类型,因此会返回nullresult }将推断为Type类型。

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

答案 1 :(得分:6)

结果应为null,因为?运算符会使操作短路。