自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#運(yùn)算符重載學(xué)習(xí)總結(jié)

開發(fā) 后端
本文介紹C#運(yùn)算符重載是個(gè)不常出現(xiàn)的應(yīng)用,同時(shí)也是個(gè)好玩的東西,我們可以使用一下方法來實(shí)現(xiàn)這樣的需求。

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

我們可以使用他來實(shí)現(xiàn)這樣的需求:

當(dāng)一個(gè)訂單與另外一個(gè)訂單相加形成一個(gè)新的訂單。新訂單的貨物為兩個(gè)訂單的貨物的并集,總價(jià)為兩個(gè)訂單的總價(jià)和。下面實(shí)現(xiàn)看看,先做個(gè)輔助的貨物類

  1. public class Merchandise{  
  2. public int Count { get; set; }  
  3. public string Name { get; set; }  
  4. public double UnitPrice { get; set; }  
  5. }然后來實(shí)現(xiàn)訂單類  
  6. public class Order  
  7. {  
  8. public double TotalPrices { get; set; }  
  9. public List<Merchandise> Merchadises { get; set; }  
  10. public static Order operator +(Order a, Order b){  
  11. Order newnewOrder = new Order(){  
  12. TotalPrices = a.TotalPrices + b.TotalPrices  
  13. };  
  14. newOrder.Merchadises.AddRange(a.Merchadises);  
  15. newOrder.Merchadises.AddRange(b.Merchadises);  
  16. return newOrder;  
  17. }  

下面是客戶端調(diào)用代碼

  1. Order o1 = new Order { TotalPrices = 500.0 };  
  2. o1.Merchadises.AddRange  
  3. new List<Merchandise>{  
  4. new Merchandise{Name = "肥皂",Count=100,UnitPrice=3},  
  5. new Merchandise{Name = "毛巾",Count=100UnitPrice=2}  
  6. }  
  7. Order o2 = new Order { TotalPrices = 8000.0 };  
  8. o1.Merchadises.AddRange  
  9. new List<Merchandise>{  
  10. new Merchandise{Name = "電視"Count=5,UnitPrice=1000},  
  11. new Merchandise{Name = "DVD",Count=5,UnitPrice=600}  

參數(shù)
result-type運(yùn)算符的結(jié)果類型。
unary-operator下列運(yùn)算符之一:+ - ! ~ ++ — true false
op-type***個(gè)(或***一個(gè))參數(shù)的類型。
operand***個(gè)(或***一個(gè))參數(shù)的名稱。
binary-operator其中一個(gè):+ - * / % & | ^ << >> == != > < >= <=
op-type2第二個(gè)參數(shù)的類型。
operand2第二個(gè)參數(shù)的名稱。
conv-type-out類型轉(zhuǎn)換運(yùn)算符的目標(biāo)類型。
conv-type-in類型轉(zhuǎn)換運(yùn)算符的輸入類型。

備注

前兩種形式聲明了用戶定義的內(nèi)置C#運(yùn)算符重載。注意,并非所有內(nèi)置運(yùn)算符都可以被重載(請(qǐng)參見可重載的運(yùn)算符)。op-type 和 op-type2 中至少有一個(gè)必須是封閉類型(即運(yùn)算符所屬的類型)。例如,這將防止重定義整數(shù)加法運(yùn)算符。

后兩種形式聲明了轉(zhuǎn)換運(yùn)算符。conv-type-in 和 conv-type-out 中正好有一個(gè)必須是封閉類型(即,轉(zhuǎn)換運(yùn)算符只能從它的封閉類型轉(zhuǎn)換為其他某個(gè)類型,或從其他某個(gè)類型轉(zhuǎn)換為它的封閉類型)。

運(yùn)算符只能采用值參數(shù),不能采用 ref 或 out 參數(shù)。

任何運(yùn)算符聲明的前面都可以有一個(gè)可選的屬性(C# 編程指南)列表。以上介紹C#運(yùn)算符重載

【編輯推薦】

  1. C#生產(chǎn)者和消費(fèi)者
  2. 詳細(xì)介紹C#基礎(chǔ)知識(shí)
  3. C#正則表達(dá)式學(xué)習(xí)筆記
  4. 簡(jiǎn)單描述C#存儲(chǔ)過程
  5. 淺析C#基于TCP協(xié)議
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-12 10:47:03

C#運(yùn)算符重載

2009-09-04 13:18:10

C#允許運(yùn)算符重載

2009-08-12 10:27:12

C#運(yùn)算符重載運(yùn)算符重載實(shí)例

2009-08-12 10:56:47

C#運(yùn)算符重載C#運(yùn)算符重載實(shí)例

2009-08-12 11:20:51

C#運(yùn)算符重載

2009-08-12 12:46:11

C#運(yùn)算符重載

2009-08-12 10:37:13

C#運(yùn)算符重載

2009-08-11 15:51:08

C#運(yùn)算符算術(shù)運(yùn)算符

2009-08-12 09:30:10

C#??運(yùn)算符

2009-08-12 15:02:49

C#賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符

2009-08-12 15:20:18

C#賦值運(yùn)算符復(fù)合賦值運(yùn)算符

2009-08-11 14:16:38

C# New運(yùn)算符

2009-09-01 10:08:57

C#運(yùn)算符

2009-08-12 13:35:22

C#關(guān)系運(yùn)算符

2009-08-12 14:29:32

C#條件運(yùn)算符

2009-08-12 14:49:33

C#移位運(yùn)算符

2009-11-06 13:57:52

C#

2021-12-15 10:25:57

C++運(yùn)算符重載

2011-07-15 01:34:36

C++重載運(yùn)算符

2009-08-12 10:07:51

C#運(yùn)算符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)