国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

詳解C#中相等運算符重載可能造成的陷阱

開發 后端
本文將介紹的是C#中相等運算符重載可能造成的陷阱,希望本文對大家日常的.NET開發工作有所幫助。

本文將對作者開發過程中,碰到的C#中相等運算符重載可能造成的陷阱問題。通過對這一陷阱的解決,能讓大家對相等運算符重載有更深的了解。

最近編程時遇到一個相等運算符重載的問題,想來該是C#的一個陷阱。

我定義的Coordinate類原先是這樣重載相等運算符的:

  1. publice class Coordinates  
  2.  
  3. {  
  4.  
  5. ....  
  6.         public override bool Equals(object obj)  
  7.         {  
  8.             if (!(obj is Coordinates)) return false;  
  9.             Coordinates other = (Coordinates)obj;  
  10.             return (this.longitude.CompareTo(other.longitude) == 0) && (this.latitude.CompareTo(other.latitude) == 0);  
  11.         }  
  12.         public static bool operator ==(Coordinates lhs, Coordinates rhs)  
  13.         {  
  14.             return lhs.Equals(rhs);  
  15.         }  
  16.         public static bool operator !=(Coordinates lhs, Coordinates rhs)  
  17.         {  
  18.              return !(lhs == rhs);  
  19.         }  
  20. ...  

這也是運算符重載時常見的情況,但在具體使用時有種情況下會出現問題:即當一個Coordinate對象本身為NULL,而它再與NULL比較時,如下所示:

  1. Coordinates actualPos = null;  
  2.  
  3.    if (actualPos == null)  
  4.            {                。。。            }  
  5.            else 
  6.            {                。。。            } 

運行時就會拋出錯誤,提示說某個指針為空。跟蹤的結果發現就是承載的“==”運算符出現問題,它會調用“lhs.Equals(rhs)”語句,結果就是lhs本身不存在導致異常。

為此我試圖在調用該語句前排除這種情況,于是把重載函數改為:

  1. public static bool operator ==(Coordinates lhs, Coordinates rhs)  
  2.       {  
  3.           if (lhs == nullreturn (rhs == null);  
  4.  
  5.           return lhs.Equals(rhs);  
  6.       } 

結果發現這個函數會繼續調用自身,隨后依然是出現異常。

要解決這個問題,就必須打破這樣的死循環,于是嘗試著把lhs映射為object,如下所示:

  1. public static bool operator ==(Coordinates lhs, Coordinates rhs)  
  2. {  
  3.     if ((lhs as object) == nullreturn ((rhs as object) == null);  
  4.  
  5.     return lhs.Equals(rhs);  

lhs被映射為object后的“==”就會采用object的相等運算符,結果自然OK。這樣的問題相信使用C#編程遲早會遇到,可能還莫名其妙,希望以上文章對大家有用。

原文標題:C#相等運算符重載的陷阱和解決辦法

鏈接:http://www.cnblogs.com/cruisoring/archive/2009/11/04/1595958.html

責任編輯:彭凡 來源: 博客園
相關推薦

2009-08-12 10:37:13

C#運算符重載

2009-08-12 10:47:03

C#運算符重載

2009-09-04 13:18:10

C#允許運算符重載

2009-08-12 10:56:47

C#運算符重載C#運算符重載實例

2009-08-12 10:27:12

C#運算符重載運算符重載實例

2009-08-14 10:16:57

C#運算符重載

2009-08-12 12:46:11

C#運算符重載

2009-08-12 11:20:51

C#運算符重載

2009-08-11 15:51:08

C#運算符算術運算符

2009-08-12 09:30:10

C#??運算符

2024-01-26 16:37:47

C++運算符開發

2009-08-12 15:02:49

C#賦值運算符簡單賦值運算符

2009-08-12 15:20:18

C#賦值運算符復合賦值運算符

2009-08-12 13:35:22

C#關系運算符

2009-08-12 14:29:32

C#條件運算符

2009-09-01 10:08:57

C#運算符

2009-08-11 14:16:38

C# New運算符

2009-08-12 14:49:33

C#移位運算符

2021-12-15 10:25:57

C++運算符重載

2011-07-15 01:34:36

C++重載運算符
點贊
收藏

51CTO技術棧公眾號

国产精品一区二区无线| 中文字幕日韩在线播放| 国产a视频免费观看| 天堂在线资源视频| 日韩久久一区| 91九色在线播放| 51精品秘密在线观看| 337p亚洲精品色噜噜狠狠| 日本a级片免费| 久久伊人蜜桃av一区二区| 在线碰免费视频在线观看| 欧美日韩国产在线播放网站| 欧美性生活一级片| 久久久久se| 国产精品卡一卡二卡三| 91老司机福利在线| 另类图片亚洲色图| 中日韩美女免费视频网站在线观看| 一区二区三区四区精品在线视频| 欧美12一14sex性hd| 亚洲一区二区黄色| 国产原创精品在线| 自拍偷拍国产精品| 在线观看视频免费| 91精品国产综合久久久久久久久久| 麻豆免费在线观看| 亚洲欧美日韩精品久久亚洲区| 日韩经典一区| 91精品黄色| 白白色 亚洲乱淫| a在线观看免费视频| 日韩欧美在线一区| 97人人模人人爽视频一区二区| 欧美国产一区在线| 国产精品色视频| 日产精品一区二区| 成年人视频免费在线观看| 91精品视频在线| 久久精品一区二区三区中文字幕| 激情小说网站亚洲综合网| 欧美激情成人动漫| 欧美aⅴ一区二区三区视频| 日韩欧美精品在线| 品久久久久久久久久96高清| 嫩草在线视频| 日本黄色一区二区| 91观看网站| 国产精品99久久久久久动医院| 91精品国产免费| 在线观看成年人视频| 欧美日韩亚洲激情| 国产成+人+综合+亚洲欧美丁香花| 99视频免费观看| 欧美sm精品调教视频| 成人自拍视频网| 香港三级经典全部种子下载| 日本在线三级| 欧美福利视频在线| 日韩免费大片| 成人亚洲成人影院| 91免费福利视频| 亚洲人成电影在线观看天堂色| 国产一区二区三区影视| 美女av电影| 亚洲区成人777777精品| 五月天视频一区| 欧美国产日本| 男女视频一区二区三区| 色久综合一二码| 欧美激情一区在线| 久久97超碰色| 国产黄页在线观看| 久久99国产精品尤物| 中文在线а√在线| 欧美亚洲综合色| 波多野结衣中文在线| 亚洲欧洲日产国产网站| 亚洲男人影院| 中文字幕一区二区三区乱码 | 亚洲一区二区三区在线播放| 国产精品久久久久久久久久辛辛 | 韩国视频一区二区| 久久久久久免费看| 久久久国产一区二区三区四区小说 | 日韩毛片在线观看| 欧美成人免费全部网站| 欧美在线视频一二三| 精品理论电影在线| 美女黄毛**国产精品啪啪| 国内精品国产三级国产a久久| 国产视频网址在线| 亚洲美女中文字幕| 美洲天堂一区二卡三卡四卡视频| 一级在线视频| www.一区二区三区| 欧美日韩电影一区| 久久精品成人| 美女露胸视频在线观看| 欧美与黑人午夜性猛交久久久| 中国精品18videos性欧美| 成人欧美一区二区| 日本va欧美va欧美va精品| 国产a级片免费观看| 久久影院模特热| 中文在线日韩| 国产在线电影| 欧美精品一区三区| 亚洲免费高清| 五月天激情视频在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 日韩成人精品一区| 亚洲日本伦理| 久久久久国产精品视频| 亚洲国产成人精品女人久久久| 久久精品论坛| 欧美日韩国产高清视频| 2017欧美狠狠色| 精品国产18久久久久久二百| 成人免费看片网址| 欧美久久久久免费| 亚洲区小说区| 在线观看福利一区| 亚洲视频欧美视频| 中文字幕乱码亚洲精品一区| 欧洲精品二区| 人妻av中文系列| 欧美日韩国产免费一区二区| 日韩精品乱码av一区二区| 欧美vide| 久久影院理伦片| 亚洲天堂网在线观看| 国产亚洲视频在线| 中文字幕欧美日韩一区| 中文字幕一区二区三区在线视频| 先锋成人av| 91精品久久久久久综合乱菊| 91丨九色丨黑人外教| jizz一区二区三区| 免费av网址在线| 亚洲国产欧美在线成人app| 欧美69wwwcom| 华人av在线| 欧美一级日本a级v片| 久久亚洲成人精品| 欧美性生交xxxxx久久久| 国产美女一区二区三区| 国产原创av在线| 欧美性视频在线播放| 日韩午夜av一区| 久久久久久久久国产一区| 一区二区三区视频网| 亚洲自拍偷拍区| 亚洲色图视频网| 日本精品视频| 青青在线免费观看| 日韩成人av一区| 免费在线视频一区| 国内露脸中年夫妇交换精品| av动漫在线播放| 日韩欧美国产精品| 中文av字幕一区| 日韩高清一区在线| 日韩大片在线播放| 亚洲精品成人一区| 国产午夜福利在线播放| 国产精品高清网站| 依依成人综合视频| 久久99精品视频| 伊人情人综合网| 久久天堂久久| av资源在线看片| 神马久久精品| 成人黄动漫网站免费| 中文字幕日韩av电影| 欧美自拍偷拍午夜视频| 亚洲视频狠狠| 91se在线| 不卡视频一区二区三区| 久久久国产精品视频| 久久夜色精品一区| 久久国产主播| 国产一区毛片| 三级国产在线观看| 懂色av一区二区三区在线播放| 中文字幕最新精品| 欧美一级xxx| 欧美性极品xxxx娇小| 亚洲欧洲精品天堂一级| 成人性生交大片免费看中文| 香蕉久久久久久| 69xxx在线| 中国女人做爰视频| 在线视频日本亚洲性| 7777精品久久久大香线蕉| 亚洲人成在线播放网站岛国| 91啪亚洲精品| 国产乱子伦视频一区二区三区| 亚洲一区欧美二区| 欧美另类女人| 成人性生交大片免费看网站|