Rumah >pembangunan bahagian belakang >C++ >Sekiranya anda mengatasi GetHashCode ketika mengatasi sama dengan .net?
Apabila menentukan jenis tersuai dalam .net, jika perlu, bukan sahaja anda harus menulis semula kaedah yang sama, tetapi juga menulis semula kaedah gethashcode, yang sangat penting. Ini amat penting apabila jenis ini digunakan sebagai kunci dalam koleksi kamus dan set hash.
Mengapa ditulis semula getHashcode?GetHashCode bertanggungjawab untuk menjana kod hash untuk objek. Tanpa pembanding adat, mengumpul kod hash ini untuk menentukan jadual yang sesuai untuk mencari objek di dalamnya. Jika kod hash kedua -dua objek adalah sama, ia diandaikan bahawa ia terletak di dalam baldi yang sama, dan hanya pada masa itu, sama akan dipanggil untuk melakukan pemeriksaan yang lebih terperinci.
kaedah gethashcode pilihan
Memandangkan kelas FOO yang disediakan, penulisan semula sama dibandingkan berdasarkan atribut FOOID. Kaedah ini konsisten dengan sama dengan logik untuk memastikan objek dengan fooid yang sama mempunyai kod hash yang sama.
akibat penulisan semula gethashcode yang salah
Abaikan penulisan semula gethashcode dan gunakan pelaksanaan lalai, yang akan menyebabkan kesan buruk berikut:
Miss Equal Object: Jika kedua -dua objek sebenarnya sama tetapi mempunyai kod hash yang berbeza, mereka tidak boleh dianggap sama kerana mereka tidak akan memanggil sama.
Terlalu banyak konflik:Pelaksanaan GetHashCode yang salah akan membawa kepada konflik yang berlebihan, dan banyak daripada mereka diperuntukkan dengan kod hash yang sama, yang membawa kepada kecekapan prestasi yang rendah.
Pengangkutan mudah: Memandangkan beban == dan!
Atas ialah kandungan terperinci Sekiranya anda mengatasi GetHashCode ketika mengatasi sama dengan .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!