根据我在 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
,并且if
语句需要一个 bool
条件。由于您不能直接将 null
转换为 bool
,是否有一种更简单的方法可以在不执行 if(name != null)
的情况下进行检查> 在 C# 6.0 中使用新的 null
运算符?
最佳答案
这样做没有意义。您没有在您的示例中执行任何 null 合并 - 您只是检查 null。
更好的用途是检查 name
对象的某些成员。例如:
if (name?.FirstName != null) ...
但如您所见,它仍然是 null 的简单比较 - 我们只是使用 null 合并来避免必须编写如下内容:
if (name != null && name.FirstName != null) ...
关于条件语句中的 C# 6.0 空运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32207793/