将空条件操作与空合并操作冗余组合在一起



我对 C# 官方文档中的一个示例有点困惑,它说将 null 条件运算符与 null 合并运算符组合可用于分配默认值。

这是 MSDN 上使用的示例:

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

但对我来说,这看起来与:

first = person.FirstName ?? "Unspecified";

什至测试了它们并且它们的行为相同,所以我想知道我是否遗漏了一些东西,或者使用前者只是多余的?

如果person为空,则它们不相同。如果person为空,则第二行将抛出NullReferenceException。这是?.运算符的全部意义所在。

最新更新