47 c# if-statement conditional-statements
如果我有一个If有两个条件的陈述 - 第一个失败了,第二个条件是否会被考虑,还是会直接进入else?那么,在下面的例子中,如果myList.Count == 0,将myString与"值"进行比较,还是直接进行else?
if(myList.Count > 0 && myString.Equals("value"))
{
//Do something
}
else
{
//Do something else
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*gle 84
它将停止评估,因为您正在使用双&符号&&运算符.这称为短路.
如果您将其更改为单个&符号:
if(myList.Count > 0 & myString.Equals("value"))
Run Code Online (Sandbox Code Playgroud)
它会评估两者.
如果逻辑运算符是AND(&&),则IF语句将评估第一个表达式 - 如果第一个表达式为false,则不会计算第二个表达式.这对于在引用上调用方法之前检查变量是否为空非常有用 - 以避免空指针异常
如果逻辑运算符是OR(||),则IF语句将评估第一个表达式 - 如果第一个表达式为真,则不会计算第二个表达式.
编译器和运行时针对此行为进行了优化
| 归档时间: |
|
| 查看次数: |
42559 次 |
| 最近记录: |