我对 C# 官方文档中的一个示例有点困惑,它说将 null 条件运算符与 null 合并运算符组合可用于分配默认值。
这是 MSDN 上使用的示例:
first = person?.FirstName ?? "Unspecified";
但对我来说,这看起来与:
first = person.FirstName ?? "Unspecified";
什至测试了它们并且它们的行为相同,所以我想知道我是否遗漏了一些东西,或者使用前者只是多余的?
如果person
为空,则它们不相同。如果person
为空,则第二行将抛出NullReferenceException
。这是?.
运算符的全部意义所在。