次の方法で共有


IEqualityComparer.GetHashCode(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

戻り値

指定したオブジェクトのハッシュ コード。

例外

obj の型が参照型で、objnull です。

次のコード例は、大文字と小文字を区別しない IEqualityComparerの実装を示しています。 この例では、 メソッドは GetHashCode 型によって提供されるハッシュ コードを Object 返します。

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 実装します。

注意 (実装者)

実装する場合に必要なEquals(Object, Object)メソッドを返しますtrue2 つのオブジェクトのxy、によって返される値、GetHashCode(Object)メソッドxに対して返された値を等しくする必要がありますy

適用対象

こちらもご覧ください