C#允許運(yùn)算符重載剖析
本文向大家介紹C#允許運(yùn)算符重載,可能好多人還不了解C#允許運(yùn)算符重載,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
C#允許運(yùn)算符重載
與 C++ 一樣,C#允許運(yùn)算符重載,以供在我們自己的類中使用。這可能使得用戶定義的數(shù)據(jù)類型看起來很自然,并且可以在邏輯上作為基本數(shù)據(jù)類型使用。例如,我們可以創(chuàng)建一個新的名為 Complex 的數(shù)據(jù)類型來表示一個復(fù)雜的數(shù)字,并且提供一些方法,以使用標(biāo)準(zhǔn)的算術(shù)運(yùn)算符對這樣的數(shù)字進(jìn)行算術(shù)運(yùn)算,例如使用 + 運(yùn)算符來使兩個復(fù)雜的數(shù)字相加。
為了重載一個運(yùn)算符,我們編寫了一個函數(shù),它將需要重載的運(yùn)算符的符號放在名稱 operator 的后面。例如,我們可以這樣來重載 + 運(yùn)算符:
- public static complex operator+(complex lhs, complex rhs)
所有的運(yùn)算符重載都是類的靜態(tài)方法。同時也需要注意,如果您重載等于運(yùn)算符 (==),您還必須重載不等于運(yùn)算符 (!=)。
可以C#允許運(yùn)算符重載完整列表如下:
一元運(yùn)算符: +, -, !, ~, ++, --, true, false
二元運(yùn)算符: +, -, *, /, %, &, |, ^, <<, >>, ==, !=, >, <, >=, <=
下一個示例創(chuàng)建了一個 Complex 類,該類重載 + 和 - 運(yùn)算符:
- using System;
- public class complex
- {
- private float real;
- private float img;
- }
【編輯推薦】