IEqualityComparer.Equals(Object, Object) Metode

Definisi

Menentukan apakah objek yang ditentukan sama.

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

Parameter

x
Object

Objek pertama yang dibandingkan.

y
Object

Objek kedua yang akan dibandingkan.

Mengembalikan

true jika objek yang ditentukan sama; jika tidak, false.

Pengecualian

x dan y berbeda jenis dan tidak satu pun dapat menangani perbandingan dengan yang lain.

Contoh

Contoh kode berikut menunjukkan implementasi case-insensitive IEqualityComparer. Dalam contoh ini, CaseInsensitiveComparer.Compare metode ini digunakan untuk menentukan apakah dua objek sama, berdasarkan yang disediakan 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

Keterangan

Terapkan metode ini untuk memberikan perbandingan kesetaraan yang disesuaikan untuk objek.

Catatan Bagi Implementer

Metode Equals(Object, Object) ini refleksif, simetris, dan transitif. Artinya, itu mengembalikan true jika digunakan untuk membandingkan objek dengan dirinya sendiri; true untuk dua objek x dan y jika true untuk y dan x; dan true untuk dua objek x dan z jika untuk truex dan y dan juga true untuk y dan z.

Implementasi diperlukan untuk memastikan bahwa jika Equals(Object, Object) metode kembali true untuk dua objek x dan y, maka nilai yang dikembalikan oleh GetHashCode(Object) metode untuk x harus sama dengan nilai yang dikembalikan untuk y.

Berlaku untuk