다음을 통해 공유


IEqualityComparer.Equals(Object, Object) 메서드

정의

지정한 개체가 같은지 여부를 확인합니다.

public:
 bool Equals(System::Object ^ x, System::Object ^ y);
public bool Equals (object x, object y);
public bool Equals (object? x, object? y);
abstract member Equals : obj * obj -> bool
Public Function Equals (x As Object, y As Object) As Boolean

매개 변수

x
Object

비교할 첫 번째 개체입니다.

y
Object

비교할 두 번째 개체입니다.

반환

지정한 개체가 같으면 true이고, 그렇지 않으면 false입니다.

예외

xy가 형식이 다르므로 서로 비교할 수 없는 경우

예제

다음 코드 예제에서는 대/소문자를 구분 IEqualityComparer하지 않는 의 구현을 보여 줍니다. 이 예제 CaseInsensitiveComparer.Compare 에서 메서드는 제공된 CultureInfo에 따라 두 개체가 같은지 여부를 확인하는 데 사용됩니다.

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(Object, Object) 반사적이고 대칭적이며 전이적입니다. 즉, 개체를 자체 true 와 비교하는 데 사용되는 경우 를 반환합니다. 두 개체 x 의 경우 truexytrue 에 대해 y 이고, 두 개체 zx 에 대해 이고true, 및 에 대한 xy 경우 및 y 에 대해서도 true 를 반환 true 합니다z.

메서드가 두 개체 x 및 에 대해 를 반환 true 하는 경우 Equals(Object, Object) 에 대해 반환되는 값이 에 대해 반환yxGetHashCode(Object) 값과 y같아야 하므로 구현이 필요합니다.

적용 대상