《Inside C#》筆記(十一) 運算符重載
阿新 • • 發佈:2017-07-07
筆記 去重 返回值 ron 需要 使用 als 增加 返回
運算符重載與之前的索引器類似,目的是為了讓語言本身使用起來更方便直接,也是一種語法糖。
一 運算符重載(Operator Overloading)
運算符重載的存在,使得現有的各種運算符可以被重新定義並用來操作用戶自定義的數據類型。運算符重載只是語法糖,因為它的本質實際上還是對方法的調用,並沒有為語言本身增加新特性。
a) 運算符重載的寫法
public static <返回值>operator<運算符> (<參數1>,<參數2>…)
還有一些規則:
必須用public static 修飾
不限制返回值的類型,但不推薦返回bool類型。
參數的數量取決於被重載的運算符的性質,如果是一元運算符,重載時也需要一個參數,同樣,二元需要兩個。
重載一元運算符時,參數的類型必須是當前類。
重載二元運算符時,則要求第一個參數的類型是當前類,第二個參數類型不做限制。
b) 能夠被重載的運算符
一元運算符:+,-,!,~,++,--,true,false
二元運算符:+,-,*,/,%,&,|,^,<<,>>,==,!=,>,<,>=,<=
c) 等號不能被重載,但如果二元運算符被重載,對應的組合運算符如+=,-=等也等同於被重載。
[],和()也無法重載。
d) 為了保證代碼的可讀性,只有在真正需要重載的時候再去重載。
學習資料:Inside C# by Tom Archer
《Inside C#》筆記(十一) 運算符重載