将Null条件运算与Null-coalescing运算结合起来是多余的?

Dum*_*ode 0 c#

我对C#官方文档中的示例感到有点困惑,它说可以使用空条件运算符和null-coalescing运算符组合来分配默认值.

这是MSDN上使用的示例:

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

但对我来说,它看起来像是:

first = person.FirstName ?? "Unspecified";

我甚至对它们进行了测试,两者的行为都相同,所以我想知道我是否遗漏了一些东西,或者说它只是多余才能使用前者?

D S*_*ley 8

如果person为null 则它们不相同.如果person为null,则第二行将抛出一个NullReferenceException.这是?.运营商的全部观点.