引用類型的相等比較:
在C#中,引用類型有四種進行比較的方法,下面摘錄出來供大家區分:
1. ReferenceEquals()
是一個靜態方法,測試兩個引用是否指向類的同一個實例。並且認為null==null。
2. 虛擬的Equals()方法
object類默認有一個虛擬的Equals方法,用於用戶重寫自己的比較方法。
3. 靜態的Equals()方法
傳入兩個參數,返回比較這兩個參數的結果。這個方法可以比較可能為null的參數,如果都是null,就返回true,只有一個會返回一個false,如果都不是null,就會調用該參數的虛擬Equals方法。
4. 比較運算符 ==
不是所有的類都可以使用==的,只有重載了==運算符的類才可以使用。
值類型的相等比較:
和引用類型一樣,ReferenceEquals比較引用,而Equals比較值,但是這裡多了一個裝箱拆箱的過程。