Aracılığıyla paylaş


IEquatable<T> Arabirim

Tanım

Bir değer türünün veya sınıfın örneklerin eşitliğini belirlemek için türe özgü bir yöntem oluşturmak için uyguladığı genelleştirilmiş bir yöntemi tanımlar.

generic <typename T>
public interface class IEquatable
public interface IEquatable<T>
type IEquatable<'T> = interface
Public Interface IEquatable(Of T)

Tür Parametreleri

T

Karşılaştıracak nesne türü.

Türetilmiş

Örnekler

Yöntemin örneğine IEquatable<T>.Equals bakın.

Açıklamalar

Bu arabirim, değerleri eşitlenebilen türler tarafından uygulanır (örneğin, sayısal ve dize sınıfları). Değer türü veya sınıfı, örneklerin Equals eşitliğini belirlemeye uygun türe özgü bir yöntem oluşturmak için yöntemini uygular.

Not

IComparable<T> arabirimi, uygulayan türün örneklerinin sıralama düzenini belirleyen yöntemini tanımlarCompareTo. IEquatable<T> arabirimi, uygulayan türün örneklerinin eşitliğini belirleyen yöntemini tanımlarEquals.

ArabirimIEquatable<T>, , ve LinkedList<T> gibi yöntemlerde eşitlik testi yaparken , List<T>ve gibi RemoveDictionary<TKey,TValue>ContainsIndexOfLastIndexOfgenel koleksiyon nesneleri tarafından kullanılır. Genel bir koleksiyonda depolanmış olabilecek tüm nesneler için uygulanmalıdır.

Uygulayanlara Notlar

Arabirimin tür parametresini IEquatable<T> bu arabirimi uygulayan türle değiştirin.

uygularsanız IEquatable<T>, ve'nin temel sınıf uygulamalarını Equals(Object)GetHashCode() da geçersiz kılmanız gerekir, böylece davranışları yönteminkiyle Equals(T) tutarlı olur. geçersiz kılarsanız Equals(Object)geçersiz kılınan uygulamanız sınıfınızdaki statik Equals(System.Object, System.Object) yönteme yapılan çağrılarda da çağrılır. Ayrıca ve op_Inequality işleçlerini op_Equality aşırı yüklemelisiniz. Bu, eşitlik için tüm testlerin tutarlı sonuçlar döndürmesini sağlar.

geçersiz kılma Equals(Object)hakkında bilgi için bkz Equals(Object). .

Bir değer türü için, daha iyi performans için her zaman uygulamalı IEquatable<T> ve geçersiz kılmalısınız Equals(Object) . Equals(Object) değer türlerini kutular ve eşitlik için iki değeri karşılaştırmak için yansımaya dayanır. Hem uygulamanızın Equals(T) hem de geçersiz kılmanızın Equals(Object) tutarlı sonuçlar döndürmesi gerekir.

uygularsanız IEquatable<T>, türünüzün örneklerinin sıralanabilir veya sıralanabilir olup olmadığını da uygulamanız IComparable<T> gerekir. Türünüz uygularsa IComparable<T>, neredeyse her zaman da uygularsınız IEquatable<T>.

Bir türün sipariş ilişkisini desteklediği bazı tasarımlar olduğunu, ancak eşitliğin bir sıralama ilişkisinden farklı olabileceğini unutmayın. Alfabetik olarak sıraladığınız bir Person sınıf düşünün. Aynı ada sahip iki kişi aynı şekilde sıralanır, ancak aynı kişi değildir.

Yöntemler

Equals(T)

Geçerli nesnenin aynı türdeki başka bir nesneye eşit olup olmadığını gösterir.

Şunlara uygulanır

Ayrıca bkz.