IEqualityComparer.Equals(Object, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정한 개체가 같은지 여부를 확인합니다.
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
입니다.
예외
x
와 y
가 형식이 다르므로 서로 비교할 수 없는 경우
예제
다음 코드 예제에서는 대/소문자를 구분 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
의 경우 true
및 x
y
true
에 대해 y
이고, 두 개체 z
x
에 대해 이고true
, 및 에 대한 x
y
경우 및 y
에 대해서도 true
를 반환 true
합니다z
.
메서드가 두 개체 x
및 에 대해 를 반환 true
하는 경우 Equals(Object, Object) 에 대해 반환되는 값이 에 대해 반환y
된 x
GetHashCode(Object) 값과 y
같아야 하므로 구현이 필요합니다.
적용 대상
.NET