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

首頁 > 編程 > C# > 正文

C#的==運(yùn)算符和Equals()方法區(qū)別

2023-05-05 19:01:40
字體:
供稿:網(wǎng)友

本文使用一個(gè)實(shí)例具體講解了C#中“==”與Equals()方法的區(qū)別.

using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
 class Person
 {
    private string name;
    public string Name
    {
      get { return name; }
      set { name = value; }
    }
    public Person(string name)
    {
      this.name = name;
    }
 }
 class Program
 {
  static void Main(string[] args)
  {
    string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
    string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
    Console.WriteLine(a == b);
    Console.WriteLine(a.Equals(b));
    object g = a;
    object h = b;
    Console.WriteLine(g == h);
    Console.WriteLine(g.Equals(h));
    Person p1 = new Person("jia");
    Person p2 = new Person("jia");
    Console.WriteLine(p1 == p2);
    Console.WriteLine(p1.Equals(p2));
    Person p3 = new Person("jia");
    Person p4 = p3;
    Console.WriteLine(p3 == p4);
    Console.WriteLine(p3.Equals(p4));
    Console.ReadLine();
  }
 }
}

答案為何為true true false true false false true true

因?yàn)橹殿愋褪谴鎯υ趦?nèi)存中的堆棧(以后簡稱棧),而引用類型的變量在棧中僅僅是存 儲引用類型變量的地址,而其本身則存儲在堆中。

"==" : 操作比較的是兩個(gè)變量的值是否相等,對于引用型變量表示的是兩個(gè)變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。

"equals" : 操作表示的兩個(gè)變量是否是對同一個(gè)對象的引用,即堆中的內(nèi)容是否相同。

而字符串是一個(gè)特殊的引用型類型,在C#語 言中,重載了string 對象的很多方法方法(包括equals()方法),使string對象用起來就像是值類型一樣。

因此在上面的例子中,第一對輸出 ,字符串a(chǎn)和字符串b的兩個(gè)比較是相等的。

對于 第二對輸出 object g = a 和object h = b , 在內(nèi)存中兩個(gè)不同的對象,所以在棧中的內(nèi)容是不相同的,故不相等。而g.equals(h)用的是sting的equals()方法故相等(多太)。如果 將字符串a(chǎn)和b作這樣的修改:

string a="aa";
  string b="aa";

則,g和h的兩個(gè)比較都是相等的。這是因?yàn)橄到y(tǒng)并沒有給字符串b分配內(nèi)存,只是將"aa"指向了b。所以a和b指向的是同一個(gè)字符串(字符串在 這種賦值的情況下做了內(nèi)存的優(yōu)化)。

對于p1和p2,也是內(nèi)存中兩個(gè)不同的對象,所以在內(nèi)存中的地址肯定不相同,故p1==p2會(huì)返回false,又因?yàn)閜1和p2又是對不同對象 的引用,所以p1.equals(p2)將返回false。

對于p3和p4,p4=p3,p3將對對象的引用賦給了p4,p3和p4是對同一個(gè)對象的引用,所以兩個(gè)比較都返回true。

MSDN中就有介紹?。?/p>

下面的規(guī)則概括了 Equals 方法和等號運(yùn)算符 (==) 的實(shí)現(xiàn)準(zhǔn)則:

每次實(shí)現(xiàn) Equals 方法時(shí)都實(shí)現(xiàn) GetHashCode 方法。這可以使 Equals 和 GetHashCode 保持同步。

每次實(shí)現(xiàn)相等運(yùn)算符 (==) 時(shí),都重寫 Equals 方法,使它們執(zhí)行同樣的操作。這樣,使用 Equals 方法的基礎(chǔ)結(jié)構(gòu)代碼(如 Hashtable 和 ArrayList)的行為就與用相等運(yùn)算符編寫的用戶代碼相同。

每次實(shí)現(xiàn) IComparable 時(shí)都要重寫 Equals 方法。

實(shí)現(xiàn) IComparable 時(shí),應(yīng)考慮實(shí)現(xiàn)相等 (==)、不相等 (!=)、小于 ( <) 和大于 (>) 運(yùn)算符的運(yùn)算符重載。

不要在 Equals、GetHashCode 方法或相等運(yùn)算符 (==) 中引發(fā)異常。

有關(guān) Equals 方法的相關(guān)信息,請參見實(shí)現(xiàn) Equals 方法。

在值類型中實(shí)現(xiàn)相等運(yùn)算符 (==)

大多數(shù)編程語言中都沒有用于值類型的默認(rèn)相等運(yùn)算符 (==) 實(shí)現(xiàn)。因此,只要相等有意義就應(yīng)該重載相等運(yùn)算符 (==)。

應(yīng)考慮在值類型中實(shí)現(xiàn) Equals 方法,這是因?yàn)?System..::.ValueType 的默認(rèn)實(shí)現(xiàn)和自定義實(shí)現(xiàn)都不會(huì)執(zhí)行。

每次重寫 Equals 方法時(shí)都實(shí)現(xiàn)相等運(yùn)算符 (==)。

在引用類型中實(shí)現(xiàn)相等運(yùn)算符 (==)

大多數(shù)語言確實(shí)為引用類型提供默認(rèn)的相等運(yùn)算符 (==) 實(shí)現(xiàn)。因此,在引用類型中實(shí)現(xiàn)相等運(yùn)算符 (==) 時(shí)應(yīng)小心。大多數(shù)引用類型(即使是實(shí)現(xiàn) Equals 方法的引用類型)都不應(yīng)重寫相等運(yùn)算符 (==)。

如果類型是 Point、String、BigNumber 等基類型,則應(yīng)重寫相等運(yùn)算符 (==)。每當(dāng)考慮重載加法 (+) 和減法 (-) 運(yùn)算符時(shí),也應(yīng)該考慮重載相等運(yùn)算符 (==)。

好了,下面是考題,相信答案大家都知道了。

Console.WriteLine((2 + 2) == 4);
  object s = 1;
  object t = 1;
  Console.WriteLine(s == t);
  string a = "hello";
  string b = String.Copy(a);
  string c = "hello";
  Console.WriteLine(a == b);
  Console.WriteLine((object)a == (object)b);
  Console.WriteLine((object)a == (object)c);

答案:TRUE, FALSE, TRUE, FALSE, TRUE

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
久久久久www| 国产91精品一区二区麻豆网站| 国产一区 二区| 肉肉视频在线观看| 女人18毛片水真多免费播放| 欧美日产一区二区三区在线观看| 1区2区在线| 在线观看免费视频污| 欧美第一页浮力影院| 欧美激情精品久久久六区热门| 亚洲美女av电影| 污污视频在线看| 亚洲麻豆一区| 欧美国产二区| 中文字幕2022永久在线| 番号在线播放| 国产美女久久| 91青青草免费观看| 成人免费福利视频| 毛片视频网站在线观看| 色综合91久久精品中文字幕| 亚洲免费成人网| 777米奇影视第四色| 黄色一级片网址| 九色资源网91| 第一福利永久视频精品| 99成人国产精品视频| 毛片久久久久久| 欧美视频中文在线看| b站大片免费直播| 97中文字幕在线观看| 全部孕妇毛片免费孕妇| 亚洲午夜在线观看| 91精品在线影院| 最新亚洲激情| 免费污视频在线观看| 久久久久国产一区二区三区| 欧美高清在线一区| 污网站在线观看| 中文字幕在线视频一区| 亚洲图片欧美综合| h片在线免费看| 国产成a人亚洲精品| 欧美另类老肥妇| 午夜私人影院在线观看| 国产亚洲一区二区三区在线播放| 国产精品精品国产色婷婷| 日操夜操天天操| 超碰97久久| 综合久久伊人| 91丨porny丨探花| 六月婷婷激情综合| 在线观看日韩精品视频| 推川ゆうり中文亚洲二区| 91在线一区二区三区| 国产成人精品实拍在线| 黄色片子免费看| 91丨九色丨海角社区| 99国产超薄肉色丝袜交足的后果| 人妻av一区二区| 午夜精品久久久久久久四虎美女版| 国产伦精品一区三区精东| 国产精品无码久久久久一区二区| 欧美中文字幕在线播放| 一区在线中文字幕| 精品久久久久久久久中文字幕| 亚洲男人天堂色| 先锋影音男人站你懂得| 欧美一级免费观看| 97电影在线观看| 特大黑人娇小亚洲女mp4| 欧美精品亚洲一区二区在线播放| 久久亚洲欧美日韩精品专区| 亚洲欧美制服丝袜| 不卡一区二区三区四区| 毛片在线不卡| 麻豆传媒在线观看| 欧美成人性福生活免费看| 亚洲婷婷噜噜| 亚洲黄色成人网| 欧美另类极限扩张| 免费在线观看av电影| 色老头一区二区三区在线观看| 精品亚洲国产成人av制服丝袜| 亚洲福利在线视频| 成熟妇人a片免费看网站| 午夜国产欧美理论在线播放| 欧美精品免费播放| 高清av中文在线字幕观看1| 亚瑟一区二区三区四区| 成人福利视频网| 国产成人一区二区三区免费看| 日韩激情视频网站| 国产欧美在线一区二区| 国产成人亚洲综合a∨婷婷图片| 在线视频观看91| 亚洲欧美日产图| 中文在线视频观看| 美女一区二区三区在线观看| 国产精品一区二区三区久久| 98精品国产高清在线xxxx天堂| 精品欧美黑人一区二区三区| 亚洲精品91天天久久人人| 老司机午夜av| 午夜剧场免费看| 综合久久国产| 2018中文字幕一区二区三区| 色婷婷综合久久久久中文| 开心九九激情九九欧美日韩精美视频电影| 污污视频网站免费观看| 新片速递亚洲合集欧美合集| 国模私拍一区二区| 亚洲欧洲视频在线观看| 在线观看亚洲精品视频| 欧美久久久久久久久久久久| 网曝门事件国产精品二区| 亚洲mv大片欧洲mv大片| 亚洲国产中文在线| 亚洲妇女av| 亚洲精品久久久久久宅男| 白丝美女让我捅| 亚洲精品成人天堂一二三| 又黄又爽的网站| 超碰在线中文字幕| 精品入口麻豆传煤| 成人黄色大片在线免费观看| 日本一欧美一欧美一亚洲视频| 不卡的av在线播放| 在线观看国产免费视频| 亚洲熟妇av一区二区三区漫画| 久久电影国产免费久久电影| 国产一区二区三区在线播放免费观看| 久久久精品人妻一区二区三区四| 被下部羞羞漫画| 精品国产午夜肉伦伦影院| 色综合久久88色综合天天免费| 亚洲欧洲日韩精品在线| 欧美性极品少妇精品网站| 欧美三级午夜理伦三级中视频| 日韩中文在线字幕| 欧美另类交人妖| av文字幕在线观看| 国产精品视频免费在线观看| 美女av在线播放| 国产偷国产偷亚洲高清人白洁| 欧美精品在线一区二区| 欧美一级免费播放| 天堂网成人在线| 久久久久久久久国产一区| 国产亚洲精品v| 欧美日韩福利电影| julia中文字幕一区二区99在线| 国产精品va在线播放| 欧美日本在线一区| 亚洲毛片aa| 香蕉视频在线网址| 欧美中日韩免费视频| 日韩精品久久久久久久软件91| 日本黄色动态图| 亚洲性生活大片| 日韩一本精品| 欧美成人高清视频在线观看| 性做久久久久久| 国产精品扒开做爽爽爽的视频| 成人毛片一区二区三区| 亚洲女同ⅹxx女同tv| 国产精品极品美女在线观看免费| 天堂亚洲精品| 好男人官网在线| 亚洲综合无码一区二区| 69xxxx视频| yy111111少妇影院日韩夜片| 国产亚洲成av人片在线观看| 日韩黄色视屏| 欧美成人精品欧美一级乱| 国产精品video| 在线播放免费av| 在线视频欧美精品| 三级精品在线观看| 超碰免费在线播放| 国产精品啊v在线| 国产成人无码一区二区在线观看| 亚洲久久久久久| jizzjizzjizzjizz日本老师| 亚洲一区 二区| av不卡高清| 激情综合色播激情啊| 国产成人午夜性a一级毛片| 免费高清在线| 黄色毛片免费看| 久久精品国产成人精品| 一区二区中文视频| 天海翼女教师无删减版电影| 久久久久亚洲综合| 欧美精选视频在线观看| 天天躁日日躁狠狠躁av麻豆男男| 亚洲wwwww| www欧美激情| 男人网站视频| 日韩一区二区三区免费观看| 欧洲一区二区三区| 99久久久精品免费观看国产| 日本一区视频在线播放| 午夜国产一区| 中文在线免费一区三区高中清不卡| 亚洲免费视频在线观看| 色视频www在线播放国产成人| 9191久久久久久久久久久| 欧美精品欧美精品系列c| 国产精品久久婷婷六月丁香| 国产精品一二二区| 日韩视频中文字幕| 国内外成人免费激情视频| 成人h在线播放| 日韩免费观看高清| 国产另类自拍| 蜜桃久久久久久久| 欧美一级播放| 一本色道亚洲精品aⅴ| 国产伦精品一区三区精东| 99精品偷自拍| 国产精品欧美一区二区三区不卡| 久久久久久久一区二区三区| 欧美成人有码| 懂色中文一区二区三区在线视频| 午夜成人影视| 久久久精品在线视频| 裸体武打性艳史| 青青草免费在线观看| 五月天丁香综合久久国产| 一个人看的免费视频色| 精品蜜桃在线看| 亚洲激情另类| 乱人伦精品视频在线观看| 亚洲一级大片| 亚洲精品小视频在线观看| 日本中文字幕中出在线| 丁香五精品蜜臀久久久久99网站| 欧美在线精品免播放器视频| 99国产成+人+综合+亚洲欧美| 欧美一区影院| 日韩a级片在线观看| 人妻无码一区二区三区四区| 成人免费看片视频| 久久国产综合视频| 日本一卡二卡四卡精品| 免费国产成人av| 粉嫩欧美一区二区三区| 国产二区国产一区在线观看| 欧美日韩国产探花| 少妇搡bbbb搡bbb搡打电话| 日韩中文字幕影院| 999国产精品视频| 国产精品7777| 最近中文字幕mv2018在线高清| 最近日韩中文字幕中文| 国产精品丝袜一区二区| 51精品秘密在线观看| 怡红院精品视频在线观看极品| jiuse九色最新地址| 爽爽淫人综合网网站| 久久久久久久久国产| 青草青草久热精品视频在线观看| 欧美污在线观看| 日韩毛片一二三区| 成人午夜激情影院| 欧美俄罗斯乱妇| 欧美a一区二区| 亚洲a∨一区二区三区| www.久久伊人| 欧美性生活大片视频| 99亚洲精品| 一区二区三区免费视频网站| 国产极品人妖在线观看| 中文字幕一区二区三区在线不卡| 欧美videossexotv100| 色拍拍在线精品视频8848| 欧美日韩123| 国产乱码精品一区二区三区av| 亚洲韩国欧洲国产日产av| 亚洲欧美se| 亚洲午夜女主播在线直播| 欧美精品啪啪| 91精品啪在线观看国产爱臀| 久久久国产影院| 亚洲免费在线视频一区 二区| 日本三级久久| 伊人久久大香线蕉综合影院首页| 欧美激情偷拍| 久久久99爱| 亚洲国产精品精华液网站| 欧美日韩亚洲综合一区二区三区激情在线| 国产精品宾馆在线精品酒店| 成人三级伦理片| 高清免费成人av| 动漫精品一区二区| 黄页网站在线观看视频| 国产一级在线免费观看| 精品国产无码AV| 国产精品天堂| 国产网站一区二区三区| 国产乱码精品| 日本欧美一区二区三区乱码| 成人在线看片| 成人欧美一区二区三区在线湿哒哒| 麻豆成人在线| 九九在线精品视频| 亚洲综合网中心| 日本一区免费观看| 亚洲国产电影| 欧美怡红院视频一区二区三区| 久久久久国产精品一区三寸| 中文字幕12页| 国产成人av自拍| 97国产一区二区| 头脑特工队2免费完整版在线观看| 一本大道东京热无码aⅴ| 国产成人精品a视频一区| 美女的奶胸大爽爽大片| 亚洲精品久久久蜜桃| 97久久超碰国产精品电影| 91网在线播放| 日韩一区二区三区在线观看| 亚洲小说欧美另类婷婷| 国产成人福利短视频app| 一区二区日韩| 亚洲国产精品一区二区久久恐怖片| 夜夜操天天干|