短路運算子

根據定義,如果第一個運算元無法確定表示式的整體結果,則短路布林運算子將僅計算第二個運算元。

這意味著,如果你使用&&運算子 firstCondition && secondCondition 它會評估 secondCondition 只有當 firstCondition 是真實 ofcource 總體結果將是真實的,只有當兩個的 firstOperand第二運算元被評估為 true。這在許多場景中都很有用,例如想象你要檢查,而你的列表有三個以上的元素,但你還必須檢查列表是否已初始化為不會遇到 NullReferenceException 。你可以實現如下:

bool hasMoreThanThreeElements = myList != null && mList.Count > 3;

** 不會檢查 *mList.Count> 3,*直到 myList != null。

邏輯和

&& 是標準布林 AND(&)運算子的短路對應物。

var x = true;
var y = false;

x && x // Returns true.
x && y // Returns false (y is evaluated).
y && x // Returns false (x is not evaluated).
y && y // Returns false (right y is not evaluated).

邏輯或

||是標準布林 OR(|)運算子的短路對應物。

var x = true;
var y = false;

x || x // Returns true (right x is not evaluated).
x || y // Returns true (y is not evaluated).
y || x // Returns true (x and y are evaluated).
y || y // Returns false (y and y are evaluated).

用法示例

if(object != null && object.Property)
// object.Property is never accessed if object is null, because of the short circuit.
    Action1();
else
    Action2();