Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan Kesamaan dengan Cekap untuk Objek Kompleks dalam C#?
Objek yang cekap dan kompleks dalam C#
Apabila membandingkan objek yang kompleks, adalah penting untuk memilih kaedah yang cekap. Dalam C# 4.0 dan ke atas, pendekatan terbaik ialah menggunakan antara muka IEquatable<T>
, memastikan perbandingan pantas.
Melaksanakan Iequatable untuk jenis tersuai
Laksanakan antara muka IEquatable<T>
untuk semua jenis tersuai yang mengambil bahagian dalam perbandingan. Dalam jenis yang mengandungi, panggil kaedah Equals
jenis yang mengandungi. Jika elemen yang terkandung ialah koleksi, kaedah sambungan SequenceEqual
digunakan, yang secara dalaman memanggil Equals
untuk setiap elemen.
Sama dengan kaedah jenis nilai dan jenis rujukan
Untuk jenis nilai, hubungi kaedah Equals
terus. Sifat atau medan mempunyai nilai lalai walaupun ia tidak diberikan nilai. Untuk jenis rujukan, semak kesamaan rujukan menggunakan ReferenceEquals
dahulu. Jika semakan gagal, rujukan nol disemak dan kaedah Equals
dipanggil. Ini memastikan perbandingan yang dioptimumkan.
Contoh pelaksanaan
<code class="language-csharp">public class Person : IEquatable<Person> { // ... public bool Equals(Person other) { // ... } } public class Address : IEquatable<Address> { // ... public bool Equals(Address other) { // ... } } public class City : IEquatable<City> { // ... public bool Equals(City other) { // ... } }</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Kesamaan dengan Cekap untuk Objek Kompleks dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!