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 (örneğin, sayısal ve dize sınıfları) tarafından uygulanır. Değer türü veya sınıfı, örneklerin Equals eşitliğini belirlemek için uygun türe özgü bir yöntem oluşturmak için yöntemini uygular.

Not

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

ArabirimIEquatable<T>, , List<T>LinkedList<T> ve gibi yöntemlerde eşitlik testi yaparken , ve gibi LastIndexOfDictionary<TKey,TValue>ContainsIndexOfRemovegenel koleksiyon nesneleri tarafından kullanılır. Genel bir koleksiyonda depolanmış olabilecek herhangi bir nesne için uygulanmalıdır.

Uygulayanlara Notlar

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

uygularsanız IEquatable<T>, ve temel sınıf uygulamalarını Equals(Object)GetHashCode() da geçersiz kılmalısınız, 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 her zaman daha iyi performans için uygulamalı IEquatable<T> ve geçersiz kılmalısınız Equals(Object) . Equals(Object) kutular değer türleri 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 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.