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

ハッシュ コードが返される対象の ObjectThe 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)メソッドを返しますtrue2 つのオブジェクトのxy、によって返される値、GetHashCode(Object)メソッドxに対して返された値を等しくする必要がありますyImplementations 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.

適用対象

こちらもご覧ください