条件语句中的C#6.0 null运算符

时间:2015-08-25 15:15:00

标签: c# null c#-6.0

根据我在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>

1 个答案:

答案 0 :(得分:13)

这样做没有意义。您在示例中没有进行任何空合并 - 您只需检查空值。

如果您想检查name对象的某个成员,可以更好地使用。例如:

if (name?.FirstName != null) ...

但正如你所看到的,它仍然只是对null的简单比较 - 我们只是使用空合并来避免写这样的东西:

if (name != null && name.FirstName != null) ...