我对下面的代码感到困惑
bool i_am = true;
int he_is= 0;
if ((!i_am? false : he_is> 0))
Console.WriteLine("Condition is true.....");
我测试了所有可能的方法,通过测试i_am和he_is的不同可能性来理解,但仍然无法找到逻辑。
尝试删除一组大括号"()"它会产生不同的输出。 大括号也令人困惑!这是为什么?
我是C#的初学者,有人可以帮我解决这个条件声明中的代码流程。 先谢谢你。
答案 0 :(得分:3)
if条件以奇怪的形式表达,但我认为它等于:
if (i_am && he_is > 0)
答案 1 :(得分:1)
如果我们一块一块地分析它:
!i_am ? false : he_is > 0
等于输入:
if (!i_am) //The ! operator means "NOT", so its like saying if(i_am = false), while the default if(i_am) would be equal to if(i_am = true)
{
return false;
}
else
{
return he_is > 0; //he_is = 0, so 0 > 0 will return false.
}
答案 2 :(得分:-1)
我不太清楚哪一部分让你困惑,所以我会假设一点点。
“??”操作被称为Null Coalescing Operator。如果操作数不为null,则返回左侧操作数;否则它会返回右手操作数。
这清楚了吗?