|
在 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# 運算子的差異
- 三元條件運算子 (? :) 的優先級:
在 C++ 中,? : 的優先級比大多數運算子低。
運算通常需要顯式地轉換類型,或者使用條件操作符的兩個分支都返回相同的型別。
在 C# 中,? : 的優先級高於大多數二元運算子,但低於一元運算子。
運算可以返回不同型別的值,而編譯器會進行隱含的類型轉換。
- 指標和參考的運算子:
C++ 支援指標和參考(引用),並有相應的運算子(如 * 和 &)來訪問它們。
C# 不直接支援指標,但有 ref 和 out 參數修飾符來模擬某些類型的參考行為。
- 空值合併運算子 (??):
C# 提供了空值合併運算子,允許在一個運算中處理 null 值。
C++ 沒有內建的空值合併運算子,通常需要使用條件表達式。
- 字串相加
在 C++ 中,字串相加使用 +,而在 C# 中,通常建議使用 StringBuilder 以避免性能問題。
|