IEqualityComparer.Equals(Object, Object) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa, czy określone obiekty są równe.
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
Parametry
- x
- Object
Pierwszy obiekt do porównania.
- y
- Object
Drugi obiekt do porównania.
Zwraca
true jeśli określone obiekty są równe; w przeciwnym razie, false.
Wyjątki
x i są różne typy i y żadna z nich nie może obsługiwać porównań z drugim.
Przykłady
W poniższym przykładzie kodu pokazano implementację bez uwzględniania IEqualityComparerwielkości liter. W tym przykładzie metoda służy do określania CaseInsensitiveComparer.Compare , czy dwa obiekty są równe, na podstawie podanego CultureInfoelementu .
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
Uwagi
Zaimplementuj tę metodę, aby zapewnić dostosowane porównanie równości dla obiektów.
Notatki dotyczące implementowania
Metoda Equals(Object, Object) jest refleksywna, symetryczna i przechodnia. Oznacza to, że zwraca true wartość , jeśli jest używana do porównywania obiektu z samym sobą; true dla dwóch obiektów i xytruey, i x dla dwóch obiektów truex, ztruex a także dla i , a także y dla truey i .z
Implementacje są wymagane, aby upewnić się, że jeśli Equals(Object, Object) metoda zwraca true dwa obiekty x , a ynastępnie wartość zwrócona przez GetHashCode(Object) metodę x musi być równa wartości zwracanej dla y.