Bagikan melalui


Operator Kesetaraan

Nota

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 pemrosesan berlebih dari operator kesetaraan dan mengacu pada operator== serta operator!= sebagai operator kesetaraan.

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

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

Ini sering kali berarti bahwa Object.Equals harus diganti ketika operator kesetaraan overload.

❌ HINDARI mengeluarkan pengecualian dari operator kesetaraan.

Misalnya, kembalikan false jika salah satu argumen null alih-alih melemparkan NullReferenceException.

Operator Kesetaraan pada Jenis Nilai

✔️ DO membebani operator kesetaraan pada jenis nilai, jika kesetaraan bermakna.

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

Operator Kesetaraan pada Jenis Referensi

❌ HINDARI operator kesetaraan yang kelebihan beban 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 ketika perilaku default diubah ke kesetaraan nilai.

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

❌ HINDARI kelebihan beban operator kesetaraan pada jenis referensi jika implementasinya akan jauh lebih lambat daripada kesetaraan berdasarkan referensi.

© Sebagian 2005, 2009 Microsoft Corporation. Seluruh hak cipta dilindungi.

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 oleh Krzysztof Cwalina dan Brad Abrams, diterbitkan 22 Okt 2008 oleh Addison-Wesley Professional sebagai bagian dari Seri Pengembangan Microsoft Windows.

Lihat juga