& | 與&& || 的區別


  首先 &和| 稱為布爾運算符,&&和|| 稱為條件布爾運算符。

  兩種運算符得到的結果完全相同,但得到結果的方式又一個重要區別:條件布爾運算符性能比較好。他檢查第一個操作數的值,再根據該操作數的值進行操作,可能根本就不處理第二個操作數。

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

  因為操作數的就算是有條件的,如果使用&&和||運算符來代替&和|,性能會有一定提高。在大量使用這些運算符的應用程序中這表現得尤為明顯。作為一個原則,盡可能使用&&和||運算符。這些運算符有時用於比較復雜的情形,例如,只有一個操作數包含某個值時,才計算第二個操作數(讓我想起微軟報表那點事了):

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

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

 

   那&和|有什么用呢?其實他們還有一個作用:對數值進行操作,以這種方式使用時,它們處理的是變量中存儲的一系列位,而不是變量值,因此他們稱為按位運算符。這個在很少用到,用到的時候再去復習吧。

  

  (摘自《C#入門經典》第五版)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM