【发布时间】:2016-03-07 11:52:54
【问题描述】:
var result = myObject?.GetType();
在这种情况下,如果myObject 为空,Result 的值是多少?
【问题讨论】:
-
看看我在What's New in C# 6上的文章。在那里我展示了幕后发生的事情。
标签: c# c#-6.0 null-propagation-operator
var result = myObject?.GetType();
在这种情况下,如果myObject 为空,Result 的值是多少?
【问题讨论】:
标签: c# c#-6.0 null-propagation-operator
假设你的对象没有隐藏默认的object.GetType定义:GetType返回Type,这是一个引用类型,所以null会被返回,result会被推断为@987654326类型@。
如果你的对象有一个隐藏object.GetType的方法,它也将返回null,但为result推断的类型可能会改变:如果该方法返回引用类型TResult,它将是TResult , 或 Nullable<TResult> 如果它返回类型为 TResult 的值类型。
【讨论】:
结果应该是null,因为? 运算符使操作短路。
【讨论】: