IEqualityComparer.Equals(Object, Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bepaalt of de opgegeven objecten gelijk zijn.
public:
bool Equals(System::Object ^ x, System::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
Parameters
- x
- Object
Het eerste object dat moet worden vergeleken.
- y
- Object
Het tweede object dat moet worden vergeleken.
Retouren
true als de opgegeven objecten gelijk zijn; anders, false.
Uitzonderingen
x en zijn van verschillende typen en y geen van beide kan vergelijkingen met de andere verwerken.
Voorbeelden
In het volgende codevoorbeeld ziet u de implementatie van een niet-hoofdlettergevoelig IEqualityComparer. In dit voorbeeld wordt de CaseInsensitiveComparer.Compare methode gebruikt om te bepalen of twee objecten gelijk zijn op basis van de opgegeven CultureInfoobjecten.
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
Opmerkingen
Implementeer deze methode om een aangepaste gelijkheidsvergelijking voor objecten te bieden.
Notities voor uitvoerders
De Equals(Object, Object) methode is reflexief, symmetrisch en transitief. Dat wil gezegd: het retourneert true als het wordt gebruikt om een object met zichzelf te vergelijken, true voor twee objecten en y voor yxtrue twee objecten x en true voor twee objecten x en z als het voor truex en y ook true voor y en .z
Implementaties zijn vereist om ervoor te zorgen dat als de Equals(Object, Object) methode voor twee objecten x retourneert true en yde waarde die door de GetHashCode(Object) methode x wordt geretourneerd, gelijk moet zijn aan de waarde die wordt geretourneerd voor y.