相关疑难解决方法(0)

Boolean或包含三元条件运算不会发生短路

通常,短路or操作符||忽略右侧或左侧评估为真.显然,我们发现了一个例外.

请查看以下内容:

if (foo == null || bar != true ? foo.Count == 0 : true)
{

}
Run Code Online (Sandbox Code Playgroud)

此代码在命令上抛出空引用异常,foo.Count因为它foo为null.当然,布尔逻辑允许这样做.但是,如果foo为null,你会期望它or会短路,甚至不评估表达式的右侧,但它仍然会这样做,并且它会引发异常.

这是我的代码或C#编译器中的错误吗?是否有一部分C#规范可以处理这种情况?

.net c# short-circuiting

-1
推荐指数
2
解决办法
576
查看次数

标签 统计

.net ×1

c# ×1

short-circuiting ×1