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

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

例如 != 操作 microsoft 錯誤 info 定義 sof 計算

運算符使用說明如下:

技術分享圖片

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

技術分享圖片

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

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

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

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

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

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

  總結:因為操作數的計算是有條件的,如果使用&&和 || 運算符來代替&和 |,性能會有一定提高。

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