根据我在C#6.0中使用新null
运算符收集的内容,您可以执行以下操作:
string name = people.FirstOrDefault()?.FullName;
这很棒,但我经常遇到的一个验证是这样的:
object name = null;
if(name != null) {
DoSomething();
} else {
DoSomethingElse();
}
考虑到新null
运营商的目的,我希望这样的事情应该是可能的:
if(name?) {
DoSomething();
} else {
DoSomethingElse();
}
根据我的理解,这里的问题是,当?
正在检查的值实际上是null
时,它会返回null
,并且您需要bool
条件对于if
声明。由于您无法直接将null
转换为bool
,是否有更简单的方法可以在C#6.0中使用新的if(name != null)
运算符null
进行检查?< / p>
答案 0 :(得分:13)
这样做没有意义。您在示例中没有进行任何空合并 - 您只需检查空值。
如果您想检查name
对象的某个成员,可以更好地使用。例如:
if (name?.FirstName != null) ...
但正如你所看到的,它仍然只是对null的简单比较 - 我们只是使用空合并来避免写这样的东西:
if (name != null && name.FirstName != null) ...