IEqualityComparer.GetHashCode(Object) 메서드

정의

지정한 개체의 해시 코드를 반환합니다.Returns a hash code for the specified object.

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

매개 변수

obj
Object

해시 코드가 반환될 Object입니다.The Object for which a hash code is to be returned.

반환

지정한 개체의 해시 코드입니다.A hash code for the specified object.

예외

obj 형식이 참조 형식이고 objnull인 경우The type of obj is a reference type and obj is null.

예제

다음 코드 예제는 대/소문자의 구현을 보여 줍니다. IEqualityComparer합니다.The following code example demonstrates the implementation of a case-insensitive IEqualityComparer. 이 예제에서는 합니다 GetHashCode 제공한 해시 코드를 반환 하는 메서드는 Object 형식입니다.In this example, the GetHashCode method returns the hash code provided by the Object type.

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

설명

제공한 사용자 지정 된 같음 비교를 해당 개체에 대 한 사용자 지정 된 해시 코드를 제공 하려면이 메서드를 구현 합니다 Equals 메서드.Implement this method to provide customized hash codes for objects,corresponding to the customized equality comparison provided by the Equals method.

구현자 참고

구현이 있는지를 확인 하는 데 필요한 합니다 Equals(Object, Object) 메서드가 반환 되는 true 두 개체에 대 한 xy, 반환한 값을 GetHashCode(Object) 메서드를 x 에 대 한 반환 값과 같아야 y.Implementations are required to ensure that if the Equals(Object, Object) method returns true for two objects x and y, then the value returned by the GetHashCode(Object) method for x must equal the value returned for y.

적용 대상

추가 정보