C#不存在在逻辑评估中不支持简短的空条件检查的原因吗?

问题描述

我经常发现自己写的代码在检查属性的值之前先检查null。最简单的形式是:

if (someInstance != null && someInstance.SomeBooleanProperty)

我们是否有理由不能使用空条件运算符(?.)来简化检查,因为它后面的属性是否像这样的布尔值?

if (someInstance?.SomeBooleanProperty)

上面的示例无法编译,因为它的评估结果为null,而不是truefalse,因此您会收到一条错误消息,指出{{1}没有隐式强制转换}到bool?

我们总是可以强制转换或直接检查一个值,例如:

bool

这很好用,老实说,这不是那么多额外的代码。只是,在我的观点中,C#多年来引入了所有简化功能,我不禁想知道是否有原因我们仍然不能使用这样的速记空条件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)