是结合了空,凝聚操作冗余空,条件操作?

问题描述 投票:0回答:1

我对于C#的官方文档,它说,结合与空合并运算符的空条件运算符可以用来指定默认值中发现的例子有点糊涂了。

这是MSDN上使用的示例:

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

但是,这对我来说看起来像它一样的:

first = person.FirstName ?? "Unspecified";

我甚至对它们进行测试,并都具有相同的行为,所以我不知道如果我失去了一些东西或者它只是冗余使用前?

c#
1个回答
8
投票

他们是不一样的,如果person为null。如果person为null第二行会抛出一个NullReferenceException。这就是?.运营商的整点。

© www.soinside.com 2019 - 2024. All rights reserved.