Misalnya, kelas seperti:
class Dog { } //never mind that there's nothing in it...
dan kemudian properti seperti:
Dog Dog { get; set; }
Saya telah diberitahu bahwa jika saya tidak dapat menemukan nama yang lebih imajinatif untuk itu, maka saya harus menggunakan:
Dog DogObject { get; set; }
Adakah pemikiran tentang cara memberi nama ini dengan lebih baik?
c#
naming
properties
Badai Kiernan
sumber
sumber
Person
kelas yang berisiDog
properti yang disebutDog
Jawaban:
Ini bisa menjadi praktik yang buruk, kalau bukan karena fakta bahwa sudah cukup jelas apa yang Anda bicarakan dalam kode Anda, berdasarkan konteks.
Yang merupakan konstruktor tipe? Yang mana objeknya? Tidak bingung OK, bagaimana dengan
Yang mana objeknya? Yang merupakan metode pabrik statis pada tipe itu? Masih tidak bingung? Saya kira tidak.
Satu-satunya saat saya melihat ini menjadi masalah potensial adalah ketika pohon namespace menjadi cukup rumit, dan kompiler tidak dapat menemukan ambiguitas, dalam hal ini Anda berakhir dengan sesuatu seperti
Bagaimanapun, ini hanya boleh terjadi dengan Properti Otomatis (dan mungkin enum), karena nama variabel lokal selalu berdasarkan camel, menghindari ambiguitas sepenuhnya.
sumber
Dog
disebut metode instanceCreate
, tetapi Anda akan menyelam ke dalam beberapa praktik pengkodean yang cukup mengerikan pada saat itu.Tidak hanya ini praktik yang masuk akal, bahasa ini dirancang khusus untuk mengizinkan ini. Cari spesifikasi C # untuk "Warna Warna" untuk aturan dan justifikasi, dan lihat
http://blogs.msdn.com/b/ericlippert/archive/2009/07/06/color-color.aspx
untuk beberapa kasus sudut menarik yang muncul dari keputusan ini.
Dalam situasi apa pun Anda tidak boleh memberi nama properti "DogObject" untuk menghindari menyebutnya sama dengan tipenya; yang secara langsung bertentangan dengan pedoman desain kerangka kerja.
sumber
Color
), penggunaan tersebut tampaknya masuk akal. Saya tidak begitu menyukainya, dengan bisa berubah atauIDisposable
tipe. Apakah "kontrolFont
" mengacu pada aspek-aspek negara yang dirangkum oleh properti, atau ke instance yangFont
diidentifikasi oleh pengambil properti?Tidak apa-apa menyebutnya
Dog
dan inilah sebenarnya yang direkomendasikan Microsoft dalam pedoman penamaan Kerangka :Dan berikut adalah contoh yang mereka gunakan dalam panduan di atas:
sumber