【问题标题】:C# 6 null propagation what value is set when object is nullC# 6 null 传播当对象为 null 时设置什么值
【发布时间】: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


【解决方案1】:

假设你的对象没有隐藏默认的object.GetType定义:GetType返回Type,这是一个引用类型,所以null会被返回,result会被推断为@987654326类型@。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-09-08
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多