在 C# 中,運算子是用來執行操作的符號或關鍵字。
以下是一些常見的 C# 運算子,按照優先順序高到低的順序介紹:

後置遞增和遞減運算子 (Postfix Increment/Decrement):
  • x++:後置遞增,先返回當前值,然後遞增 x。
  • x--:後置遞減,先返回當前值,然後遞減 x。
前置遞增和遞減運算子 (Prefix Increment/Decrement):
  • ++x:前置遞增,先遞增 x,然後返回當前值。
  • --x:前置遞減,先遞減 x,然後返回當前值。
一元正、負、邏輯補充運算子 (Unary Plus, Unary Minus, Logical NOT):
  • +:正號。
  • -:負號。
  • !:反相。
乘法、除法和餘數運算子 (Multiplication, Division, Remainder):
  • *:乘法。
  • /:除法。
  • %:餘數(取模)。
加法和減法運算子 (Addition, Subtraction):
  • +:加法。
  • -:減法。
位元運算子 (Bitwise Operators):
  • &:位元 AND。
  • |:位元 OR。
  • ^:位元 XOR。
  • <<:左移。
  • >>:右移。
比較運算子 (Comparison Operators):
  • ==:等於。
  • !=:不等於。
  • <:小於。
  • >:大於。
  • <=:小於等於。
  • >=:大於等於。
邏輯運算子 (Logical Operators):
  • &&:邏輯 AND。
  • ||:邏輯 OR。
  • !:邏輯 NOT。
三元運算子 (Conditional Operator):
  • ? :
指派運算子 (Assignment Operators):
  • =:指派。
  • +=: + 與 = 合成。
  • -=: - 與 = 合成。
  • *=: * 與 = 合成。
  • /=: / 與 = 合成。
  • %=: % 與 = 合成。
c++ 與 c# 運算子的差異
  1. 三元條件運算子 (? :) 的優先級:
  2. 在 C++ 中,? : 的優先級比大多數運算子低。
    運算通常需要顯式地轉換類型,或者使用條件操作符的兩個分支都返回相同的型別。
    在 C# 中,? : 的優先級高於大多數二元運算子,但低於一元運算子。
    運算可以返回不同型別的值,而編譯器會進行隱含的類型轉換。
  3. 指標和參考的運算子:
  4. C++ 支援指標和參考(引用),並有相應的運算子(如 * 和 &)來訪問它們。
    C# 不直接支援指標,但有 ref 和 out 參數修飾符來模擬某些類型的參考行為。
  5. 空值合併運算子 (??):
  6. C# 提供了空值合併運算子,允許在一個運算中處理 null 值。
    C++ 沒有內建的空值合併運算子,通常需要使用條件表達式。
  7. 字串相加
  8. 在 C++ 中,字串相加使用 +,而在 C# 中,通常建議使用 StringBuilder 以避免性能問題。