lar*_*ryq 16 c# conditional-operator short-circuiting logical-operators
这里有关于C#中的短路语句的快速问题.使用if语句:
if (MyObject.MyArray.Count == 0 || MyObject.MyArray[0].SomeValue == 0)
{
//....
}
Run Code Online (Sandbox Code Playgroud)
是否保证评估将在"MyArray.Count"部分之后停止,前提是该部分为真?否则我将在第二部分得到一个空例外.
And*_*are 34
是的,这是有保证的.
在
&&与||运营商被称为条件逻辑运算符.它们也被称为"短路"逻辑运算符.
因此,他们将根据定义支持逻辑短路- 您可以依赖此行为.
现在重要的是区分条件运算符和逻辑运算符:
|逻辑AND &.Bry*_*tts 12
是的,它是有保证的.
http://msdn.microsoft.com/en-us/library/6373h346%28v=VS.80%29.aspx
条件OR运算符(||)执行其bool操作数的逻辑或,但仅在必要时才计算其第二个操作数.