Bagikan melalui


Operator Kesetaraan

Catatan

Konten ini dicetak ulang oleh izin Pearson Education, Inc. dari Panduan Desain Kerangka Kerja: Konvensi, Idiom, dan Pola untuk Pustaka .NET yang Dapat Digunakan Kembali, Edisi ke-2. Edisi itu diterbitkan pada tahun 2008, dan buku tersebut telah sepenuhnya direvisi pada edisi ketiga. Beberapa informasi di halaman ini mungkin sudah kedaluarsa.

Bagian ini membahas operator kesetaraan yang kelebihan beban serta mengacu pada operator== dan operator!= sebagai operator kesetaraan.

❌ JANGAN membebani berlebihan salah satu operator kesetaraan, dan bukan operator lainnya.

✔️ PASTIKAN bahwa Object.Equals dan operator kesetaraan memiliki semantik yang sama persis dan karakteristik performa yang serupa.

Ini sering kali berarti bahwa Object.Equals perlu ditimpa ketika operator kesetaraan kelebihan beban.

❌ HINDARI menampilkan pengecualian dari operator kesetaraan.

Misalnya, buat hasil salah jika salah satu argumen null, alih-alih melemparkan NullReferenceException.

Operator Kesetaraan pada Jenis Nilai

✔️ BERI beban berlebihan operator kesetaraan pada jenis nilai, jika kesetaraan bermakna.

Dalam sebagian besar bahasa pemrograman, tidak ada implementasi default operator== untuk jenis nilai.

Operator Kesetaraan pada Jenis Referensi

❌ HINDARI membebani berlebihan operator kesetaraan pada jenis referensi yang dapat diubah.

Banyak bahasa memiliki operator kesetaraan bawaan untuk jenis referensi. Operator bawaan biasanya menerapkan kesetaraan referensi, dan banyak pengembang terkejut saat perilaku default diubah ke kesetaraan nilai.

Masalah ini ditanggulangi untuk jenis referensi yang tidak dapat diubah karena kekekalan menjadikannya jauh lebih sulit untuk melihat perbedaan antara kesetaraan referensi dan kesetaraan nilai.

❌ HINDARI membebani berlebihan operator kesetaraan pada jenis referensi jika implementasinya akan jauh lebih lambat daripada kesetaraan referensi.

Portions © 2005, 2009 Microsoft Corporation. Semua hak dilindungi undang-undang.

Dicetak ulang dengan izin dari Pearson Education, Inc. dari Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga