将空条件运算与空协约运算结合起来是否多余?

时间:2019-02-05 17:29:37

标签: c#

对于C#官方文档中的示例感到有些困惑,该示例说将空条件运算符与空coalescing运算符结合在一起可以分配默认值。

这是在MSDN上使用的示例:

first = person?.FirstName ?? "Unspecified";

但是在我看来,它与以下内容相同:

first = person.FirstName ?? "Unspecified";

我什至对它们进行了测试,并且两者的行为相同,所以我想知道我是否缺少某些东西,或者只是使用前者而多余?

1 个答案:

答案 0 :(得分:8)

如果person为空,则它们不相同。如果person为null,则第二行将抛出NullReferenceException。这就是?.运算符的重点。