Aracılığıyla paylaş


IEqualityComparer.GetHashCode(Object) Yöntem

Tanım

Belirtilen nesne için bir karma kodu döndürür.

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

Parametreler

obj
Object

Karma Object kodun döndürülacağı kod.

Döndürülenler

Belirtilen nesne için karma kod.

Özel durumlar

türü obj bir başvuru türüdür ve obj şeklindedir null.

Örnekler

Aşağıdaki kod örneği, büyük/küçük harfe duyarsız IEqualityCompareruygulamasını gösterir. Bu örnekte yöntemi, GetHashCode türü tarafından Object sağlanan karma kodu döndürür.

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

Açıklamalar

Yöntemi tarafından Equals sağlanan özelleştirilmiş eşitlik karşılaştırmasına karşılık gelen nesneler için özelleştirilmiş karma kodları sağlamak için bu yöntemi uygulayın.

Uygulayanlara Notlar

Yöntemlerin ve için iki nesne yx döndürdüğünde Equals(Object, Object)true yöntemi tarafından döndürülen değerin için döndürülen değere eşit olması gerektiğinden GetHashCode(Object) emin olmak için xyuygulamalar gereklidir.

Şunlara uygulanır

Ayrıca bkz.