日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#操作符重載特點(diǎn)實(shí)例淺析

C#操作符重載特點(diǎn)是什么呢?

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了雨湖免費(fèi)建站歡迎大家使用!

細(xì)心的朋友可能發(fā)現(xiàn),C#雖然可以重載操作符,但和C++比較起來(lái),卻有很大的不同。定義的時(shí)候重載操作符方法必須是static,而且至少有一個(gè)參數(shù)(一目和二目分別是一個(gè)和兩個(gè)),C#和C++比起來(lái),最重要的特征是:<、>;==、!=;true、false必須成對(duì)出現(xiàn),即重載了“<”就必須重載“>”,重載了“==”就必須重載“!=”,重載了“true”就必須重載“false”;另外,還必須實(shí)現(xiàn)基類object的兩個(gè)虛方法:GetHashCode()和Equals(object obj)。

以下是C#操作符重載特點(diǎn)實(shí)例程序代碼,有些地方寫得不完善,只能說(shuō)僅僅說(shuō)明了問(wèn)題,不對(duì)之處請(qǐng)指教:

 
 
 
  1. using System;   
  2.  
  3. using System.Xml;   
  4.  
  5. namespace ConsoleApplication8   
  6.  
  7. {   
  8.  
  9. ///    
  10.  
  11. /// 姓名類   
  12.  
  13. ///    
  14.  
  15. class Namer   
  16.  //C#操作符重載特點(diǎn)實(shí)例
  17. {   
  18.  
  19. private string FirstName;   
  20.  
  21. private string LastName;   
  22.  
  23. public Namer()   
  24.  
  25. {   
  26.  
  27. this.Init(null,null);   
  28.  
  29. }   
  30.  
  31. public Namer(string fn,string ln)   
  32.  
  33. {   
  34.  
  35. this.Init(fn,ln);   
  36.  
  37. }   
  38.  //C#操作符重載特點(diǎn)實(shí)例
  39. private void Init(string fn,string ln)   
  40.  
  41. {   
  42.  
  43. this.FirstName=fn;   
  44.  
  45. this.LastName=ln;   
  46.  
  47. }   
  48.  
  49. ///    
  50.  
  51. /// 重載運(yùn)算符true   
  52.  
  53. ///    
  54.  
  55. ///    
  56.  
  57. /// 如果姓名中姓或名有一個(gè)為空,就返回假   
  58.  
  59. public static bool operator true(Namer n)   
  60.  
  61. {   
  62.  
  63. if(n.FirstName==null || n.LastName==null)   
  64.  
  65. return false;   
  66.  
  67. else   
  68.  
  69. return true;   
  70.  
  71. }   
  72.  
  73. ///    
  74.  
  75. /// 重載運(yùn)算符false   
  76.  
  77. ///    
  78.  
  79. ///    
  80.  
  81. ///    
  82.  
  83. public static bool operator false(Namer n)   
  84.  
  85. {   
  86.  
  87. if(n.FirstName==null || n.LastName==null)   
  88.  
  89. return false;   
  90.  
  91. else   
  92.  //C#操作符重載特點(diǎn)實(shí)例
  93. return true;   
  94.  
  95. }   
  96.  
  97. ///    
  98.  
  99. /// 重載運(yùn)算符==   
  100.  
  101. ///    
  102.  
  103. ///    
  104.  
  105. ///    
  106.  
  107. ///    
  108.  
  109. public static bool operator ==(Namer n1,Namer n2)   
  110.  
  111. {   
  112.  
  113. if(n1.FirstName==n2.FirstName 
  114. && n1.LastName==n2.LastName)   
  115.  
  116. return true;   
  117.  
  118. else   
  119.  //C#操作符重載特點(diǎn)實(shí)例
  120. return false;   
  121.  
  122. }   
  123. ///    
  124.  
  125. /// 重載運(yùn)算符!=   
  126.  
  127. ///    
  128.  
  129. ///    
  130.  
  131. ///    
  132.  
  133. ///    
  134.  
  135. public static bool operator !=(Namer n1,Namer n2)   
  136.  
  137. {   
  138.  
  139. if(n1.FirstName!=n2.FirstName || n1.LastName !=n2.LastName)   
  140.  
  141. return true;   
  142.  
  143. else   
  144.  
  145. return false;   
  146.  
  147. }   
  148.  
  149. ///    
  150.  
  151. /// 重載運(yùn)算符>   
  152.  
  153. ///    
  154.  
  155. ///    
  156.  
  157. ///    
  158.  
  159. ///    
  160.  //C#操作符重載特點(diǎn)實(shí)例
  161. public static bool operator >(Namer n1,Namer n2)   
  162.  
  163. {   
  164.  
  165. return (n1.FirstName.CompareTo(n2.FirstName)>0 
  166. && n1.LastName.CompareTo(n2.LastName)>0);   
  167.  
  168. }   
  169.  
  170. ///    
  171.  
  172. /// 重寫方法,必須有,后面的111是亂加的,你也可以寫其它的   
  173.  
  174. ///    
  175.  
  176. ///    
  177.  
  178. public override int GetHashCode()   
  179.  
  180. {   
  181.  //C#操作符重載特點(diǎn)實(shí)例
  182. return base.GetHashCode()*111;   
  183.  
  184. }   
  185.  
  186. ///    
  187.  
  188. /// 重寫方法,必須有   
  189.  
  190. ///    
  191.  
  192. ///    
  193.  
  194. ///    
  195.  
  196. public override bool Equals(object obj)   
  197.  
  198. {   
  199.  
  200. return base.Equals (obj);   
  201.  
  202. }   
  203.  
  204. ///    
  205.  
  206. /// 重寫方法,必須有   
  207.  
  208. ///    
  209.  
  210. ///    
  211.  
  212. public override string ToString()   
  213.  
  214. {   
  215.  
  216. return "姓:"+this.FirstName+" 名:"+this.LastName;   
  217.  
  218. }   
  219.  
  220. public static void Main()   
  221.  
  222. {   
  223.  
  224. Namer n1=new Namer("li","zanhong");   
  225.  
  226. Namer n2=new Namer("ahang","aan");   
  227.  
  228. //Namer n2=new Namer("li","zanhong");   
  229.  
  230. if(n1==n2)   
  231.  
  232. Console.WriteLine("一樣的名字");   
  233.  
  234. else   
  235.  //C#操作符重載特點(diǎn)實(shí)例
  236. Console.WriteLine("不一樣的名字");   
  237.  
  238. /////////////////////////////////////   
  239.  
  240. if(n1!=n2)   
  241.  
  242. Console.WriteLine("不一樣的名字成立");   
  243.  
  244. else   
  245.  
  246. Console.WriteLine("同樣的名字成立");   
  247.  
  248. /////////////////////////////////////   
  249.  
  250. if(n1>n2)   
  251.  
  252. Console.WriteLine(n1.ToString()+">"+n2.ToString());   
  253.  
  254. else if(n1
  255.  
  256. Console.WriteLine(n1.ToString()+"<"+n2.ToString());   
  257.  
  258. else   
  259.  
  260. Console.WriteLine("沒(méi)有正確比較");   
  261.  
  262. Console.ReadLine();   
  263.  
  264. }   
  265.  
  266. }   
  267.  

C#操作符重載特點(diǎn)實(shí)例的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#操作符重載有所幫助。

【編輯推薦】

  1. C# 操作XML的全過(guò)程實(shí)例淺析
  2. C#操作xml文件實(shí)例詳解
  3. C#操作XML文件學(xué)習(xí)綜合體會(huì)
  4. C#操作符重載學(xué)習(xí)的一點(diǎn)總結(jié)
  5. C#操作符重載應(yīng)用的一點(diǎn)體會(huì)

網(wǎng)頁(yè)名稱:C#操作符重載特點(diǎn)實(shí)例淺析
轉(zhuǎn)載來(lái)源:http://www.5511xx.com/article/cdcpdhj.html