Saya melihat pertanyaan yang mirip dengan ini sehubungan dengan nama parameter yang cocok dengan properti di kelas, tapi saya tidak dapat menemukan apa pun mengenai menggunakan nama parameter yang sama dengan nama tipe parameter kecuali untuk casing di C #. Sepertinya bukan pelanggaran yang bisa saya temukan, tetapi apakah itu dianggap praktik yang buruk? Sebagai contoh, saya punya metode berikut
public Range PadRange(Range range) {}
Metode ini mengambil rentang, dan mengembalikan rentang baru yang telah menerapkan beberapa lapisan. Jadi, mengingat konteks generik, saya tidak bisa memikirkan nama yang lebih deskriptif untuk parameter. Namun, saya teringat tip yang saya ambil ketika membaca Kode Lengkap tentang "jarak psikologis". Ia mengatakan
Jarak psikologis dapat didefinisikan sebagai kemudahan di mana dua item dapat dibedakan ... Saat Anda melakukan debug, bersiaplah untuk masalah yang disebabkan oleh jarak psikologis yang tidak memadai antara nama variabel yang sama dan antara nama rutin yang serupa. Saat Anda membuat kode, pilih nama dengan perbedaan besar sehingga Anda dapat menghindari masalah.
Tanda tangan metode saya memiliki banyak "Rentang" yang terjadi, jadi rasanya seperti masalah yang berkaitan dengan jarak psikologis ini. Sekarang, saya melihat banyak pengembang melakukan hal berikut
public Range PadRange(Range myRange) {}
Saya pribadi memiliki kebencian yang kuat untuk konvensi ini. Menambahkan awalan "saya" ke nama-nama variabel tidak memberikan konteks tambahan.
Saya juga melihat yang berikut ini
public Range PadRange(Range rangeToPad) {}
Saya suka ini lebih baik daripada awalan "saya", tetapi masih tidak peduli untuk itu secara keseluruhan. Itu hanya terasa terlalu verbal bagi saya, dan membaca dengan canggung sebagai nama variabel. Bagi saya, dipahami bahwa rentang akan diisi karena nama metode.
Jadi dengan semua ini ditata, usus saya akan pergi dengan tanda tangan pertama. Bagi saya, bersih. Tidak perlu memaksakan konteks saat itu tidak diperlukan. Tetapi apakah saya menganggap diri sendiri atau pengembang masa depan merugikan dengan konvensi ini? Apakah saya melanggar praktik terbaik?
Range r
(setidaknya untuk badan metode pendek) dan Range toPad
.
Range range
tidak masalah.