可能重複:
What happens if the first part of an if-structure is false?if(iAmNull!= null && iAmNull.Length == 6)Do();
如果第一準則產生false在AND,是第二條件評估了所有在c#?
即在此示例中引發了NullException?
if (iAmNull != null && iAmNull.Length == 6) Do();
可能重複:
What happens if the first part of an if-structure is false?if(iAmNull!= null && iAmNull.Length == 6)Do();
如果第一準則產生false在AND,是第二條件評估了所有在c#?
即在此示例中引發了NullException?
if (iAmNull != null && iAmNull.Length == 6) Do();
沒有第二個條件不評估,因爲你使用的是短路& &運營商。
短路評價,最小評估,或麥卡錫評價 表示在一些編程一些布爾運算符的語義 語言,其中如果所述的第二個參數時,才執行或評價 第一個參數不足以確定 表達式的值:當AND函數的第一個參數的計算結果爲 false時,整體值必須爲false;當OR函數的第一個參數 的計算結果爲真時,整體值必須爲真。
不,邏輯運算符有short-circuit evaluation。
正如其他人指出'&&'操作符短路,以便不評估第二個表達式。在需要同時評估兩個表達式的情況下,使用'&'運算符。 –