日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

C#運(yùn)算符重載實(shí)例是掌握C#運(yùn)算符重載的有效方法,那么就讓我們通過(guò)一個(gè)實(shí)際的例子來(lái)介紹。其中重載==,!=,Equal,GetHashCode函數(shù)。

 
 
 
  1. public class Record   
  2. {   
  3.  
  4. public string[] arr = null;   
  5. public bool hasEqual = false;   
  6. //重載一個(gè)下標(biāo)運(yùn)算符號(hào)   
  7. public string this[int index]   
  8. {   
  9. get   
  10. {   
  11. return arr[index];   
  12. }   
  13. set   
  14. {   
  15. arr[index] = value;   
  16. }   
  17. }   
  18. public override int GetHashCode()   
  19. {   
  20.  
  21. //在這里使用字符串?dāng)?shù)組的hashcode,避免自己完成一個(gè)算法   
  22.  
  23. return arr.GetHashCode();   
  24. }   
  25. public Record(int count)   
  26. {   
  27. if (count < 1)   
  28. {   
  29. throw new Exception("數(shù)組的長(zhǎng)度不能小于1");   
  30. }   
  31. arr = new string[count];   
  32. }   
  33. public static bool operator ==(Record rec1, Record rec2)   
  34. {   
  35.  
  36. //注意我們調(diào)用Equals來(lái)判斷是否相等。而不是在自己的函數(shù)中判斷。
  37. //這是因?yàn)槿绻谧约旱暮瘮?shù)中判斷。
  38. //比如有rec2=null的情況。如果是這種情況。我們要判斷if(rec2==null){…}。
  39. //其中rec2==null也是調(diào)用一個(gè)等號(hào)運(yùn)算符,這里面有一個(gè)遞歸的過(guò)程,造成了死循環(huán)。   
  40.  
  41. return Object.Equals(rec1, rec2);   
  42. }   
  43. public static bool operator !=(Record rec1, Record rec2)   
  44. {   
  45. return !Object.Equals(rec1, rec2);   
  46. }   
  47. public override bool Equals(object obj)   
  48. {   
  49. //判斷與之比較的類型是否為null。這樣不會(huì)造成遞歸的情況   
  50. if (obj == null)   
  51. return false;   
  52. if (GetType() != obj.GetType())   
  53. return false;   
  54. Record rec = (Record)obj;   
  55. int count = rec.arr.Length;   
  56. for (int i = 0; i < count; i++)   
  57. {   
  58. if (this.arr[i] != rec.arr[i])   
  59. {   
  60. return false;   
  61. }   
  62. }   
  63. return true;   
  64. }   

C#運(yùn)算符重載實(shí)例的基本情況就向你介紹到這里,希望對(duì)你有所幫助。


當(dāng)前文章:C#運(yùn)算符重載實(shí)例淺析
本文鏈接:http://www.dlmjj.cn/article/dhsdgch.html