C 基礎 ( 和equals的區別)

2021-09-24 02:47:16 字數 794 閱讀 7244

這兩個的作用是什麼呢?

其實就是為了判斷兩個變數或者物件等是否相等或相同。

那麼什麼時候==和equals是相同的呢?

對於值型別來說,這兩個都是來判斷值是否相同。值型別和引用型別的區別

那麼什麼時候==和equals是不同的呢?

對於引用型別來說,==判斷是時引用位址是否相同(是否執行同乙個堆中位址),equals判斷的是是否是對乙個物件的引用(堆裡面的內容是否相同)

例子1:

拿引用型別string來說:

上面的a和b是不同的變數,引用位址應該不一樣,那為什麼a==b輸出為true呢

引用string是微軟封裝的乙個字串,在內部已經對==操作符重寫,重寫後比較的是兩個變數的內容是否相同

例子2:

自己寫的person類

上上面p1和p2的內容是相同的,那麼為什麼還是false

對於equals是object的乙個虛方法,在person類裡面沒有對equals進行重寫,還是父類的equals的方法。而父類無法知道你都有哪些成員字段,所以返回false。要想讓他比較,要重寫equals方法

public override bool equals

(object obj)

else

}

C 中equals和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals也就是比較引用型別是否是對同乙個物件...

Equals 和 的區別

對於值型別,如果物件的值相等,則相等運算子 返回 true,否則返回 false。對於string 以外的引用型別,如果兩個物件引用同乙個物件,則 返回 true。對於 string 型別,比較字串的值。操作比較的是兩個變數的值是否相等。equals 方法比較的是兩個物件的內容是否一致 equals...

equals 和 的區別

equals 方法 是string類從它的超類object中繼承的 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等。用於比較引用 和 比較基本資料型別時具有不同的功能 1.比較基本資料型別,如果兩個值相同,則結果為true 2.而在比較引用時,如果引用指向記憶體中的同一物件,結果為true s...