IEquatable<T> Antarmuka

Definisi

Menentukan metode umum yang diterapkan jenis nilai atau kelas untuk membuat metode khusus jenis untuk menentukan kesetaraan instans.

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

Jenis parameter

T

Jenis objek yang akan dibandingkan.

Turunan

Contoh

Lihat contoh untuk metode .IEquatable<T>.Equals

Keterangan

Antarmuka ini diimplementasikan oleh jenis yang nilainya dapat disamakan (misalnya, kelas numerik dan string). Jenis nilai atau kelas mengimplementasikan Equals metode untuk membuat metode khusus jenis yang cocok untuk menentukan kesetaraan instans.

Catatan

Antarmuka IComparable<T> mendefinisikan CompareTo metode , yang menentukan urutan sortir instans dari jenis penerapan. Antarmuka IEquatable<T> mendefinisikan Equals metode , yang menentukan kesetaraan instans dari jenis penerapan.

Antarmuka IEquatable<T> digunakan oleh objek koleksi generik seperti Dictionary<TKey,TValue>, , List<T>dan LinkedList<T> saat menguji kesetaraan dalam metode seperti Contains, , IndexOfLastIndexOf, dan Remove. Ini harus diimplementasikan untuk objek apa pun yang mungkin disimpan dalam koleksi generik.

Catatan Bagi Implementer

Ganti parameter IEquatable<T> jenis antarmuka dengan jenis yang mengimplementasikan antarmuka ini.

Jika Anda menerapkan IEquatable<T>, Anda juga harus mengambil alih implementasi Equals(Object) kelas dasar dan GetHashCode() sehingga perilakunya konsisten dengan metode tersebut Equals(T) . Jika Anda mengambil Equals(Object)alih , implementasi yang ditimpa juga dipanggil dalam panggilan ke metode statis Equals(System.Object, System.Object) di kelas Anda. Selain itu, Anda harus membebani op_Equality operator dan op_Inequality berlebih. Ini memastikan bahwa semua pengujian untuk kesetaraan mengembalikan hasil yang konsisten.

Untuk informasi tentang penimpaan Equals(Object), lihat Equals(Object).

Untuk jenis nilai, Anda harus selalu menerapkan IEquatable<T> dan mengambil Equals(Object) alih untuk performa yang lebih baik. Equals(Object) kotak jenis nilai dan bergantung pada pantulan untuk membandingkan dua nilai untuk kesetaraan. Implementasi Equals(T) dan penimpaan Equals(Object) Anda harus mengembalikan hasil yang konsisten.

Jika Anda menerapkan IEquatable<T>, Anda juga harus menerapkan IComparable<T> jika instans jenis Anda dapat diurutkan atau diurutkan. Jika jenis Anda mengimplementasikan IComparable<T>, Anda hampir selalu juga menerapkan IEquatable<T>.

Perhatikan bahwa ada beberapa desain di mana jenis mendukung hubungan pesanan, tetapi kesetaraan mungkin berbeda dari relasi pemesanan. Person Pertimbangkan kelas tempat Anda mengurutkan menurut abjad. Dua orang dengan nama yang sama mengurutkan sama, tetapi bukan orang yang sama.

Metode

Equals(T)

Menunjukkan apakah objek saat ini sama dengan objek lain dengan jenis yang sama.

Berlaku untuk

Lihat juga