IEqualityComparer.Equals(Object, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
判斷指定物件是否相等。
public:
bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals(object x, object y);
public bool Equals(object? x, object? y);
abstract member Equals : obj * obj -> bool
Public Function Equals (x As Object, y As Object) As Boolean
參數
- x
- Object
第一個比較的對象。
- y
- Object
第二個比較物件。
傳回
true若指定的物件相等;否則,。 false
例外狀況
x 兩者 y 屬於不同類型,且兩者都無法相互比較。
範例
以下程式碼範例示範了大小寫不區分 IEqualityComparer的實作。 在此範例中, CaseInsensitiveComparer.Compare 該方法用來判斷兩個物件是否相等,基於提供的 CultureInfo。
class myCultureComparer : IEqualityComparer
{
public CaseInsensitiveComparer myComparer;
public myCultureComparer()
{
myComparer = CaseInsensitiveComparer.DefaultInvariant;
}
public myCultureComparer(CultureInfo myCulture)
{
myComparer = new CaseInsensitiveComparer(myCulture);
}
public new bool Equals(object x, object y)
{
return myComparer.Compare(x, y) == 0;
}
public int GetHashCode(object obj)
{
return obj.ToString().ToLower().GetHashCode();
}
}
Public Class myCultureComparer
Implements IEqualityComparer
Dim myComparer As CaseInsensitiveComparer
Public Sub New()
myComparer = CaseInsensitiveComparer.DefaultInvariant
End Sub
Public Sub New(ByVal myCulture As CultureInfo)
myComparer = New CaseInsensitiveComparer(myCulture)
End Sub
Public Function Equals1(ByVal x As Object, ByVal y As Object) _
As Boolean Implements IEqualityComparer.Equals
Return myComparer.Compare(x, y) = 0
End Function
Public Function GetHashCode1(ByVal obj As Object) _
As Integer Implements IEqualityComparer.GetHashCode
Return obj.ToString().ToLower().GetHashCode()
End Function
End Class
備註
實作此方法以提供物件的客製化等式比較。
給實施者的注意事項
此 Equals(Object, Object) 方法具有自反性、對稱性與傳遞性。 也就是說,如果用來比較一個物件與自身,則會返回true;對於兩個物件true,x如果它對且是y;trueyx對兩個物件truex,如果是,ztrue且對且是,且對且x,對。ytrueyz
實作中必須確保,如果Equals(Object, Object)方法對兩個物件truex回傳 y 和 ,則該方法GetHashCode(Object)回傳x的值必須等於 回傳的值。y