IEqualityComparer.Equals(Object, Object) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Avgör om de angivna objekten är lika med.
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
Parametrar
- x
- Object
Det första objektet som ska jämföras.
- y
- Object
Det andra objektet att jämföra.
Returer
trueom de angivna objekten är lika; annars . false
Undantag
x och y är av olika typer och ingen av dem kan hantera jämförelser med den andra.
Exempel
Följande kodexempel visar implementeringen av ett skiftlägesokänsligt IEqualityComparer. I det här exemplet CaseInsensitiveComparer.Compare används metoden för att avgöra om två objekt är lika med, baserat på den angivna CultureInfo.
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
Kommentarer
Implementera den här metoden för att tillhandahålla en anpassad likhetsjämförelse för objekt.
Anteckningar till implementerare
Metoden Equals(Object, Object) är reflexiv, symmetrisk och transitiv. Det vill: den returnerar true om den används för att jämföra ett objekt med sig själv; true för två objekt x och y om det är true för y och x; och true för två objekt x och z om det är true för x och y och även true för y och z.
Implementeringar krävs för att säkerställa att om Equals(Object, Object) metoden returnerar true för två objekt x och y, måste värdet som returneras av GetHashCode(Object) metoden för x vara lika med det värde som returneras för y.