IEquatable<T> Arabirim
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.
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 Remove
Dictionary<TKey,TValue>Contains
IndexOf
LastIndexOf
genel 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin