日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中Equals和==的区别 (面试官经常会问到)

發布時間:2023/12/20 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中Equals和==的区别 (面试官经常会问到) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先對于值類型來說,并沒有什么區別。區別只針對于引用類型。

一、值類型

? ?1.對于值類型來說,兩者比較的都是“內容”是否相同,也就是值是否相同(值類型只有存在棧上)。

?

二、引用類型

? ? 1.對于引用類型來說,本身的值存在堆中,在棧中存入本身值的引用,可以根據引用找到自己。

? ? 所以:

? ? ? ?對于引用類型來說,==比較的兩個變量的”引用“是否一樣,也就是“地址”是否一樣。而equals比較的是”內容“是否一樣。

? ? ? 1.?比較引用類型:

? ? ? ? ? ?

Person p1 = new Person("aa", 12);Person p2 = new Person("aa", 12);Console.WriteLine("Equals和= =(等于號)的比較");Console.WriteLine("p1==p2 " + (p1 == p2));//結果:false Console.WriteLine("p1.Equals(p2) " + p1.Equals(p2));//結果:false

?

? ? ? ? ? ?p1==p2?的結果是false,很簡單,因為他們本身是兩個不同的變量,引用地址是不同的。

? ? ? ? ? ?那么p1.Equals(p2)?為什么是false 呢?

? ? ? ? ? ? ? 因為Equlas是object的一個虛方法,而person并沒有對其進行重寫,此時調用的是父類的Equlas方法,但是父類是不知道p1和p2中有哪些成員的,

? ? ? ? ? 所以返回false。

? ? ? ? ? 如果想讓其相等,就要重寫父類的Equlas方法,比如:

? ? ? ? ?

public override bool Equals(object obj){Person p = obj as Person;//對變量的所有的屬性都要進行比較 只有都相同才返回trueif (this.Age == p.Age && this.Name == p.Name){return true;}else{return false;}}

? ? ? ? ? ?

? ? ? ? ?在開發過程中,會經常用到string類型的字段進行Equlas比較,但是比較的結果和==一模一樣。比如:

? ? ? ? ?

string s1 = "abc";string s2 = "abc";Console.WriteLine("s1==s2 " + (s1 == s2));//true Console.WriteLine("s1.Equals(s2) " + s1.Equals(s2));//true

? ? ? ?為什么s1和s2兩個不同的變量Euulas比較的結果會相同呢?

? 因為string是微軟封裝的一個字符串類,在內部已經對==操作符進行了重寫。重寫后比較的是兩個變量的值是否相同。

? ?內部封裝如下:

? ? ? ??

public static bool operator == (string a,string b) {return Equals(a,b); }

? ? ??

? ? ?因此,對于string類型來說,比較的都是值是否相等。(可以把string當成一個特殊的引用類型)。

? ? ??

總結:對于值類型來說,Equlas和==并沒有什么區別,比較的都是值是否相等。

? ? ? ? ? 對于引用類型來說,Equlas比較的是值是否相等,==比較的是引用是否相等。string是個特殊的引用類型,內部進行了重寫,==比較的是值是否相等。

? ??

?

轉載于:https://www.cnblogs.com/BounceGuo/p/10320873.html

總結

以上是生活随笔為你收集整理的C#中Equals和==的区别 (面试官经常会问到)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。