微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

根据我在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,那么有没有一种更简单的方法来检查它而不使用C#6.0中的new null运算符if(name!= null)?

解决方法

这样做没有意义.你在你的例子中没有做任何空合并 – 你只是检查null.

如果要检查名称对象的某个成员,可以更好地使用.例如:

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

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

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

原文地址:https://www.jb51.cc/csharp/96518.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐