1. 程式人生 > >C#中的Equals與==

C#中的Equals與==

System.Object提供了Equals()虛方法:
class Object
{
public virtual Boolean Equals(object o)
{
if (this == o) return true;
else return false;
}

}
這種判斷方式非常簡單:直接比較是兩個引用是否指向的是同一物件。但這樣比較是不確切的。所以我們需要重寫該方法,提供更合適的實現方式。

重寫時Equals()四大原則:

1、自反。即x.Equals(x)必須為true。
2、對稱。即x.Equals(y)和y.Equals(x)必須返回同樣的值。
3、可傳遞。即如果x.Equals(y)和y.Equals(z)都返回true,則x.Equals(z)也返回true。
4、前後一致。如果兩個物件的值沒變,那麼多次比較的值都應該是相同的。