Bagikan melalui


IEqualityComparer.GetHashCode(Object) Metode

Definisi

Mengembalikan kode hash untuk objek yang ditentukan.

public:
 int GetHashCode(System::Object ^ obj);
public int GetHashCode (object obj);
abstract member GetHashCode : obj -> int
Public Function GetHashCode (obj As Object) As Integer

Parameter

obj
Object

yang Object kode hashnya akan dikembalikan.

Mengembalikan

Kode hash untuk objek yang ditentukan.

Pengecualian

Jenis obj adalah jenis referensi dan obj adalah null.

Contoh

Contoh kode berikut menunjukkan implementasi tidak peka huruf besar/kecil IEqualityComparer. Dalam contoh ini, GetHashCode metode mengembalikan kode hash yang disediakan oleh Object jenis .

ref class myCultureComparer : IEqualityComparer
{
private:
    CaseInsensitiveComparer^ myComparer;

public:
    myCultureComparer()
    {
        myComparer = CaseInsensitiveComparer::DefaultInvariant;
    }

    myCultureComparer(CultureInfo^ myCulture)
    {
        myComparer = gcnew CaseInsensitiveComparer(myCulture);
    }

    virtual bool Equals(Object^ x, Object^ y) 
    {
        if (myComparer->Compare(x, y) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

    virtual int GetHashCode(Object^ obj)
    {
        return obj->ToString()->ToLower()->GetHashCode();
    }
};
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 menyediakan kode hash yang disesuaikan untuk objek, sesuai dengan perbandingan kesetaraan yang disesuaikan yang disediakan oleh Equals metode .

Catatan Bagi Implementer

Implementasi diperlukan untuk memastikan bahwa jika Equals(Object, Object) metode mengembalikan 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

Lihat juga