IEquatable<T> Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
, , IndexOf
LastIndexOf
, 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk