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

IEquatable<T>.Equals yöntemi örneğine 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 eşitliğini belirlemeye uygun türe özgü bir yöntem oluşturmak için Equals yöntemini uygular.

Not

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

IEquatable<T> arabirimi, Dictionary<TKey,TValue>, List<T>ve LinkedList<T> gibi genel koleksiyon nesneleri tarafından Contains, IndexOf, LastIndexOfve Removegibi yöntemlerde eşitlik testi yaparken kullanılır. Genel bir koleksiyonda depolanabilecek herhangi bir nesne için uygulanmalıdır.

Uygulayanlara Notlar

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

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

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

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

IEquatable<T>uygularsanız, türünüzün örnekleri sıralanabilir veya sıralanabilirse IComparable<T> de uygulamanız gerekir. Türünüz IComparable<T>uygularsa, neredeyse her zaman IEquatable<T>uygularsınız.

Bir türün sipariş ilişkisini desteklediği ancak eşitliğin bir sipariş ilişkisinden farklı olabileceği bazı tasarımlar olduğunu 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.