Dia mengklaim bahwa 0 harus berupa konstanta, dan benar-benar merapat pada saya karena itu.
Saya setuju. Penggunaan nol di sini adalah "sihir". Bayangkan Anda membaca kode ini untuk pertama kalinya. Anda tidak tahu mengapa nol itu istimewa, dan literal tidak memberi tahu Anda mengapa nol itu istimewa. Jika sebaliknya Anda berkata if(comboVendor.SelectedIndex == CreateNewVendorIndex)
maka menjadi sangat jelas bagi pembaca pertama kali apa arti kode tersebut.
Dia mengklaim saya seharusnya tidak menggunakan literal dalam kode saya sama sekali.
Itu posisi yang ekstrem; posisi yang realistis adalah untuk mengatakan bahwa penggunaan literal adalah bendera merah yang menunjukkan bahwa kode mungkin tidak sejelas mungkin. Terkadang itu tepat.
Masalahnya, saya tidak mengerti mengapa saya ingin membuat kode itu dalam situasi itu konstan. Indeks itu tidak akan pernah berubah
Bahwa itu tidak akan pernah berubah adalah alasan yang bagus untuk membuatnya konstan . Itu sebabnya konstanta disebut konstanta; karena mereka tidak pernah berubah.
juga bukan sesuatu yang perlu Anda ubah.
Sangat? Anda tidak dapat melihat setiap situasi di mana seseorang mungkin ingin mengubah urutan hal-hal dalam kotak combo?
Fakta bahwa Anda dapat melihat alasan mengapa ini mungkin berubah di masa depan adalah alasan yang baik untuk tidak menjadikannya konstan. Alih-alih itu harus berupa bidang bilangan bulat statis tidak-baca yang konstan. Konstanta harus berupa kuantitas yang dijamin tetap sama untuk sepanjang masa . Pi dan jumlah atom emas adalah konstanta yang baik. Nomor versi tidak; mereka mengubah setiap versi. Harga emas jelas merupakan konstanta yang mengerikan; itu berubah setiap detik. Hanya membuat hal-hal konstan yang tidak pernah berubah .
Sepertinya pemborosan memori untuk menyimpan satu 0 dalam memori yang digunakan untuk situasi yang sangat spesifik dan tidak pernah berubah.
Sekarang kita sampai pada inti permasalahan.
Ini mungkin adalah baris paling penting dalam pertanyaan Anda karena ini menunjukkan bahwa Anda memiliki pemahaman yang sangat cacat tentang (1) memori, dan (2) optimasi. Anda di sekolah untuk belajar, dan sekarang akan menjadi saat yang tepat untuk mendapatkan pemahaman yang benar tentang dasar-dasarnya. Bisakah Anda jelaskan secara terperinci mengapa Anda percaya bahwa "itu adalah pemborosan memori untuk menjaga satu nol dalam memori"? Pertama, mengapa Anda percaya bahwa mengoptimalkan penggunaan empat byte memori dalam proses dengan setidaknya dua miliar byte penyimpanan yang dapat dialamatkan oleh pengguna relevan? Kedua, tepatnya sumber daya apa yang Anda bayangkan sedang dikonsumsi di sini ? Apa yang Anda maksud dengan "memori" yang dikonsumsi?
Saya tertarik pada jawaban atas pertanyaan-pertanyaan ini pertama karena itu adalah kesempatan bagi Anda untuk belajar bagaimana pemahaman Anda tentang optimasi dan manajemen memori tidak benar, dan kedua karena saya selalu ingin tahu mengapa pemula percaya hal-hal aneh, sehingga saya dapat merancang alat yang lebih baik untuk memimpin mereka untuk memiliki keyakinan yang benar.