Bagikan melalui


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 metode Equals untuk membuat metode khusus jenis yang cocok untuk menentukan kesetaraan instans.

Nota

Antarmuka IComparable<T> mendefinisikan metode CompareTo, yang menentukan urutan urutan instans dari jenis penerapan. Antarmuka IEquatable<T> mendefinisikan metode Equals, 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, IndexOf, LastIndexOf, dan Remove. Ini harus diimplementasikan untuk objek apa pun yang mungkin disimpan dalam koleksi generik.

Catatan Bagi Implementer

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

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

Untuk informasi tentang mengambil alih Equals(Object), lihat Equals(Object).

Untuk jenis nilai, Anda harus selalu menerapkan IEquatable<T> dan mengambil alih Equals(Object) 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 hubungan pemesanan. Pertimbangkan kelas Person 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