亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中重載相等(==)運算符示例

2020-01-24 01:45:54
字體:
來源:轉載
供稿:網友

運算符重載一直是一個很詭異事情,因為在寫代碼的時候,不知道某個運算符有沒有被重載過。在 C++ 里面,運算符重載可以寫在類的外面,當 intellisense 不工作的時候,找到一個運算符的重載函數是一件相當頭疼的事情。這個問題在 C# 中改善了不少,因為運算符重載一定要寫在類內,而且 intellisense 很強大。不過另一個問題又產生了……

先來看 C++ 中的“==”重載:

struct A{ int x; int y;}; inlinebool operator == (const A& a, const A& b){ return a.x == b.x && a.y == b.y;}

上面這段代碼中,由于聲明的關系,a 和 b 永遠不可能為 NULL,所以直接調用 a.x 和 b.x 是沒有問題的。

而在 C# 中:

struct A{ public int x, y; public static bool operator ==(A a, A b) {  return a.x == b.x && a.y == b.y; } public static bool operator !=(A a, A b) {  return !(a == b); }}

這段代碼是沒問題的,因為 A 是 struct,而 struct 不可能為 null。但換成 class 就有問題了,比如:

class A{ public int x, y; public static bool operator == (A a, A b) {  if (a == null && b == null)  {   return true;  }  if (a == null || b == null)  {   return false;  }  return a.x == b.x && a.y == b.y; } public static bool operator != (A a, A b) {  return !(a == b); }}

由于 reference type 可以為 null,所以要先檢查 a 和 b 是不是 null,但是“a == null”這一句又會去調用“operator ==”,于是就無限遞歸下去了……想了很久都沒想出來變通的方法,而且 System.String 的實現也很詭異:

public static bool operator == (string a, string b){ return Equals(a, b);}public static bool Equals (string a, string b){ return ((a == b) || (((a != null) && (b != null)) && EqualsHelper(a, b)));}

看上去也會無限遞歸的(Reflector 出來的,不一定準),很神奇……

雖然對于 Referece type 不建議重載==,但是不建議并不代表不能用吧,這個設計太挫了…

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费看国产| 中文字幕日韩高清| 久久久久这里只有精品| 中文字幕自拍vr一区二区三区| 国产欧美日韩视频| 欧美精品电影免费在线观看| 亚洲电影在线观看| 欧美疯狂性受xxxxx另类| 国产日产亚洲精品| 久久综合免费视频影院| 97精品国产97久久久久久春色| 亚洲丝袜av一区| 亚洲偷熟乱区亚洲香蕉av| 久久精品视频网站| 中文字幕一区电影| 国产精品一区二区女厕厕| 中文字幕亚洲综合| 亚洲热线99精品视频| 国产情人节一区| 久久久噜噜噜久噜久久| www.亚洲一区| 91久久久久久| 亚洲男人天堂网| 久热爱精品视频线路一| 亚洲国产高潮在线观看| 中文字幕久久久av一区| 国产精品久久久久久久久粉嫩av| 国产精品久久久| 日韩欧美高清在线视频| 国产91精品最新在线播放| 欧美理论电影在线观看| 日韩精品中文字| 欧洲亚洲在线视频| 久久夜色精品国产| 国产一区二区日韩精品欧美精品| 久久亚洲电影天堂| 国产成人精品久久久| 国产成人精品999| 国产在线一区二区三区| 国自在线精品视频| 久久久久国色av免费观看性色| 亚洲国产成人爱av在线播放| 91精品在线看| 亚洲欧美另类自拍| 精品成人国产在线观看男人呻吟| 国产精品久久久久久久9999| 久久精品国产欧美亚洲人人爽| 国产精品视频在线播放| 国产伦精品一区二区三区精品视频| 精品免费在线视频| 成人有码视频在线播放| 国产激情视频一区| 国产第一区电影| 欧美福利小视频| 国产成人精品国内自产拍免费看| 国产欧美日韩精品专区| 国产欧美日韩综合精品| 中文欧美在线视频| 欧美精品video| 九九精品在线视频| 精品国产91久久久久久| 深夜成人在线观看| 日韩精品日韩在线观看| 欧美性视频精品| 欧美日韩国产一中文字不卡| 91欧美精品午夜性色福利在线| 日韩欧美高清在线视频| 久久精品美女视频网站| 第一福利永久视频精品| 5252色成人免费视频| 午夜精品一区二区三区av| 国内精品久久久久久中文字幕| 日本久久久久久| 2019av中文字幕| 国产日韩欧美电影在线观看| 色综合亚洲精品激情狠狠| 国产亚洲美女久久| 911国产网站尤物在线观看| 欧美成人免费小视频| 777精品视频| 亚洲性69xxxbbb| 欧美精品一二区| 欧美在线观看网站| 日韩欧美在线观看视频| 久久久久久久999精品视频| 九九精品视频在线观看| 91午夜在线播放| 亚洲美女av网站| 97视频免费在线观看| 欧美放荡办公室videos4k| 亚洲二区在线播放视频| 精品久久久久久久久国产字幕| 亚洲国产精品yw在线观看| 欧美高清不卡在线| 国产精品吴梦梦| 国产精品中文在线| 欧美成人精品激情在线观看| 麻豆国产va免费精品高清在线| 日韩精品中文字幕在线| 91免费电影网站| 91色在线观看| 欧美性jizz18性欧美| 欧美午夜激情在线| 亚洲精品国产精品国产自| 久久在线视频在线| 中文字幕欧美视频在线| 久久资源免费视频| 精品视频中文字幕| 91免费的视频在线播放| 在线精品播放av| 亚洲欧美综合精品久久成人| 色伦专区97中文字幕| 97久久伊人激情网| 国产日产亚洲精品| 久久国产精品久久精品| 91免费的视频在线播放| 欧美午夜丰满在线18影院| 欧美成人中文字幕| 久久久久国产精品www| 亚洲美女动态图120秒| 日韩男女性生活视频| 久久午夜a级毛片| 欧美性受xxx| 久久夜色精品亚洲噜噜国产mv| 国产一区二区三区在线| 九九精品在线播放| 欧美激情二区三区| 91国内揄拍国内精品对白| 欧美日韩美女在线| 久久69精品久久久久久国产越南| 欧美夫妻性生活视频| 国产精品欧美久久久| 性色av一区二区三区红粉影视| 中文字幕视频一区二区在线有码| 欧美高跟鞋交xxxxxhd| 国产精品美女久久久久av超清| 久久久精品视频在线观看| 91成人在线视频| 亚洲成人a级网| 国产精品第一页在线| 亚洲最新视频在线| 大胆人体色综合| 日韩高清a**址| 亚洲美女喷白浆| 国产精品久久久久久久9999| 国产精品福利观看| 日韩高清电影免费观看完整| 国产成人高清激情视频在线观看| 亚洲桃花岛网站| 国产欧美精品在线播放| 成人精品久久一区二区三区| 在线观看精品自拍私拍| 国产精品久久久久免费a∨大胸| 亚洲精品一区av在线播放| 国产一区二区在线免费| 欧美专区第一页| 欧美精品在线看| 国产欧美婷婷中文| 久久精品在线视频| 精品久久久久久中文字幕一区奶水| 欧美日韩不卡合集视频| 欧美日韩xxxxx| 亚洲国产精品yw在线观看| 欧美猛少妇色xxxxx|