IEqualityComparer.Equals(Object, Object) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen nesnelerin eşit olup olmadığını belirler.
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
Parametreler
- x
- Object
Karşılaştıracak ilk nesne.
- y
- Object
Karşılaştıracak ikinci nesne.
Döndürülenler
true belirtilen nesneler eşitse; aksi takdirde , false.
Özel durumlar
x ve y farklı türlerdedir ve ikisi de diğeriyle karşılaştırmaları işleyebilir.
Örnekler
Aşağıdaki kod örneği, büyük/küçük harfe duyarlı IEqualityComparerolmayan bir uygulamasını gösterir. Bu örnekte yöntemi, CaseInsensitiveComparer.Compare sağlanan CultureInfoöğesine bağlı olarak iki nesnenin eşit olup olmadığını belirlemek için kullanılır.
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
Açıklamalar
Nesneler için özelleştirilmiş bir eşitlik karşılaştırması sağlamak için bu yöntemi uygulayın.
Uygulayanlara Notlar
Yöntem Equals(Object, Object) esnek, simetrik ve geçişlidir. Başka bir ifadeyle, bir nesneyi kendisiyle karşılaştırmak için kullanılırsa, iki nesne için, true ve trueiçin ise xy ve ve true iki nesne yx için ve ve ile için truex ise ztruexy döndürür.trueyz
Yöntemlerin ve için iki nesne Equals(Object, Object)true döndürdüğünde xy yöntemi tarafından döndürülen değerin için döndürülen değere eşit olması gerektiğinden GetHashCode(Object) emin olmak için xyuygulamalar gereklidir.