IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) IEqualityComparer.GetHashCode(Object) Method

定義

傳回指定物件的雜湊碼。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 Object Object

要傳回雜湊碼的 ObjectThe Object for which a hash code is to be returned.

傳回

指定物件的雜湊碼。A hash code for the specified object.

例外狀況

obj 的型別是參考型別,而 objnullThe type of obj is a reference type and obj is null.

範例

下列程式碼範例示範不區分大小寫的實作IEqualityComparerThe 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.

適用於

另請參閱