溫故而知新之C#(二):運算子多載

來源:互聯網
上載者:User
運算子多載可以簡化操作,且使操作更直觀。不過與C++相比,可以重載的運算子集更少了(奇怪了,C++ primer中用了幾十頁來討論運算子多載,還說篇幅有點小。為啥這本C#的書只用了一頁呢?)。下面是C#運算子及其重載特性表。
運算子 重載特性
 + - ! ~ ++ -- true false  一元運算子可以重載
 + - * / # & | ^ << >>  二元運算子可以重載
 == 1= < > <= >=  比較子可以重載
 && ||  不能被重載
 [] ()  不能被重載
 += -= etc.  不能被重載
=.?; -> new is as sizeof typeof 不能被重載

需要注意的要點如下:

  1. &&和||不能被直接重載,但使用&和|進入計算則可以被重載
  2. []不能被重載,可以使用索引器來代替它完成所需操作
  3. ()不能被重載,代替此運算子的方式是定義新的轉換運算子
  4. 複合運算子不能重載,因為它們總是被分解開來,如+=
  5. 邏輯運算子必須成對重載==和!=

下面是小小的例子:public static Currency operator+(Currency lhs, Currency rhs)
{
    return (new Currency(lhs.val + rhs.val));
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.