1. 程式人生 > >關於C# 中的布林運算子 "&" "|” 與 其類似的條件布林運算子 "&&" "||" 區別說明。

關於C# 中的布林運算子 "&" "|” 與 其類似的條件布林運算子 "&&" "||" 區別說明。

運算子使用說明如下:

 分隔符 ————————————————————————————

分隔符 ————————————————————————————

  上述兩個運算子的結果與&和 | 完全相同,但得到結果的方式有一個重要區別:其效能比較好。兩者都是檢查第一個運算元的值(表2中的var2),再根據該運算元的值進行操作,可能根本就不處理 第二個運算元(表42中的var3)。

  如果&&運算子的第一個運算元是 false,就不需要考慮第二個運算元的值了,因為無論第二個運算元的值是什麼,其結果都是 false。同樣,如果第一個運算元是 true,|| 運算子就返回 true 後, 無需考慮第二個運算元的值。但上面的&和 | 運算子卻不是這樣。它們總是要計算兩個運算元。

  在大量使用這些運算子的應用程式中這表現得尤為明顯。作為一個規則,儘可能使用&&和 || 運算子。這些運算子有時用於比較複雜的情形,例如,只有第一個運算元包含某個值時,才計算第二個運算元:

        var1 = (var2 != 0) && (var3 / var2 > 2);

  如果 var2 是0,則 var3 除以 var2 就會導致“除 0 錯誤”,或者把 var1 定義為無窮大(對於某些型別如 float 來說,可能出現後一種情形,也是可以檢測到的)

   總結:因為運算元的計算是有條件的,如果使用&&和 || 運算子來代替&和 |,效能會有一定提高。