W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
運算符可以為自定義類型重載。
以下符號運算符可以重載:
+(unary)
-(unary)
!
~
++
--
+
-
*
/
%
&
|
^
<<
>>
==
!=
>
<
>=
<=
以下運算符也是可重載的:隱式和顯式轉(zhuǎn)換true和false。
復合賦值運算符(例如,+ =,/ =)通過重寫非復合運算符(例如,+,/)而隱式重寫。
條件運算符&&和||通過重寫按位運算符&和|隱式重寫。
運算符通過聲明運算符函數(shù)重載。
函數(shù)的名稱使用運算符關(guān)鍵字和運算符符號指定。
運算符函數(shù)必須標記為static和public。
操作符函數(shù)的參數(shù)表示操作數(shù)。
運算符函數(shù)的返回類型表示表達式的結(jié)果。
至少一個操作數(shù)必須是聲明操作符函數(shù)的類型。
在下面的示例中,我們定義一個名為Coin的結(jié)構(gòu),然后重載+運算符:
public struct Coin {
int value;
public Coin (int c) {
value = c;
}
public static Coin operator + (Coin x, int p) {
return new Coin (x.value + p);
}
}
這個重載允許我們給一個Coin添加一個int:
Coin B = new Coin (2);
Coin A = B + 2;
重載賦值運算符會自動支持相應的復合賦值運算符。
在我們的示例中,由于我們覆蓋+,我們也可以使用+ =:
B += 2;
C#編譯器強制執(zhí)行要定義的邏輯對的運算符。這些運算符是(==!=),(<>)和(<=> =)。
如果你重載==和!=,你通常需要重寫對象上定義的Equals和GetHashCode方法。
如果你重載(<>)和(<=> =),你應該實現(xiàn)IComparable和IComparable <T>。
隱式和顯式轉(zhuǎn)換是可重載的操作符。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: