新聞中心
C#運(yùn)算符重載是個(gè)不常出現(xiàn)的應(yīng)用,同時(shí)也是個(gè)好玩的東西。

創(chuàng)新互聯(lián)專(zhuān)注于環(huán)江網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供環(huán)江營(yíng)銷(xiāo)型網(wǎng)站建設(shè),環(huán)江網(wǎng)站制作、環(huán)江網(wǎng)頁(yè)設(shè)計(jì)、環(huán)江網(wǎng)站官網(wǎng)定制、小程序開(kāi)發(fā)服務(wù),打造環(huán)江網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供環(huán)江網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
我們可以使用他來(lái)實(shí)現(xiàn)這樣的需求:
當(dāng)一個(gè)訂單與另外一個(gè)訂單相加形成一個(gè)新的訂單。新訂單的貨物為兩個(gè)訂單的貨物的并集,總價(jià)為兩個(gè)訂單的總價(jià)和。下面實(shí)現(xiàn)看看,先做個(gè)輔助的貨物類(lèi)
- public class Merchandise{
- public int Count { get; set; }
- public string Name { get; set; }
- public double UnitPrice { get; set; }
- }然后來(lái)實(shí)現(xiàn)訂單類(lèi)
- public class Order
- {
- public double TotalPrices { get; set; }
- public List
Merchadises { get; set; } - public static Order operator +(Order a, Order b){
- Order newnewOrder = new Order(){
- TotalPrices = a.TotalPrices + b.TotalPrices
- };
- newOrder.Merchadises.AddRange(a.Merchadises);
- newOrder.Merchadises.AddRange(b.Merchadises);
- return newOrder;
- }
- }
下面是客戶(hù)端調(diào)用代碼
- Order o1 = new Order { TotalPrices = 500.0 };
- o1.Merchadises.AddRange
- new List
{ - new Merchandise{Name = "肥皂",Count=100,UnitPrice=3},
- new Merchandise{Name = "毛巾",Count=100,UnitPrice=2}
- }
- Order o2 = new Order { TotalPrices = 8000.0 };
- o1.Merchadises.AddRange
- new List
{ - new Merchandise{Name = "電視",Count=5,UnitPrice=1000},
- new Merchandise{Name = "DVD",Count=5,UnitPrice=600}
- }
參數(shù)
result-type運(yùn)算符的結(jié)果類(lèi)型。
unary-operator下列運(yùn)算符之一:+ - ! ~ ++ — true false
op-type***個(gè)(或***一個(gè))參數(shù)的類(lèi)型。
operand***個(gè)(或***一個(gè))參數(shù)的名稱(chēng)。
binary-operator其中一個(gè):+ - * / % & | ^ << >> == != > < >= <=
op-type2第二個(gè)參數(shù)的類(lèi)型。
operand2第二個(gè)參數(shù)的名稱(chēng)。
conv-type-out類(lèi)型轉(zhuǎn)換運(yùn)算符的目標(biāo)類(lèi)型。
conv-type-in類(lèi)型轉(zhuǎn)換運(yùn)算符的輸入類(lèi)型。
備注
前兩種形式聲明了用戶(hù)定義的內(nèi)置C#運(yùn)算符重載。注意,并非所有內(nèi)置運(yùn)算符都可以被重載(請(qǐng)參見(jiàn)可重載的運(yùn)算符)。op-type 和 op-type2 中至少有一個(gè)必須是封閉類(lèi)型(即運(yùn)算符所屬的類(lèi)型)。例如,這將防止重定義整數(shù)加法運(yùn)算符。
后兩種形式聲明了轉(zhuǎn)換運(yùn)算符。conv-type-in 和 conv-type-out 中正好有一個(gè)必須是封閉類(lèi)型(即,轉(zhuǎn)換運(yùn)算符只能從它的封閉類(lèi)型轉(zhuǎn)換為其他某個(gè)類(lèi)型,或從其他某個(gè)類(lèi)型轉(zhuǎn)換為它的封閉類(lèi)型)。
運(yùn)算符只能采用值參數(shù),不能采用 ref 或 out 參數(shù)。
任何運(yùn)算符聲明的前面都可以有一個(gè)可選的屬性(C# 編程指南)列表。以上介紹C#運(yùn)算符重載
本文標(biāo)題:C#運(yùn)算符重載學(xué)習(xí)總結(jié)
文章URL:http://www.dlmjj.cn/article/dpcgpod.html


咨詢(xún)
建站咨詢(xún)
