Penamaan konvensi variabel dalam bahasa pemrograman C # [ditutup]

10

Saya menonton video di C # tentang Variabel. Penulis mendeklarasikan variabel di dalam suatu metode dan ia menamakannya seperti ini: string MyName = "James";

pertanyaan saya adalah: konvensi mana yang direkomendasikan oleh .Net Framework. Apakah ini casing Pascal seperti pada contoh di atas atau apakah itu unta?

Kaser
sumber
Masalah dengan pertanyaan ini, yang Anda tidak tahu sehingga itu bukan kesalahan Anda, adalah bahwa sebenarnya tidak ada konvensi kanonik untuk C #. Ada konvensi umum; sayangnya lebih dari satu, tetapi akan sangat sulit bagi Anda untuk mendapatkan jawaban di sini, itu hanyalah pendapat murni. Maaf, voting sudah ditutup; saran saya: Luangkan waktu membaca kode di repositori github dan codeplex populer untuk melihat konvensi apa yang mereka gunakan sebagai orang-orang yang menulis sebagian besar yang populer adalah orang-orang yang berpengalaman dalam industri, dan sebagai kanonik untuk apa yang umum seperti yang akan Anda temukan.
Jimmy Hoffa
5
Memberi nama konvensi dari MSDN - msdn.microsoft.com/en-us/library/xzf533w0(v=vs.71).aspx
Yusubov
1
@Yusubov Ini menjelaskan penamaan bagian umum perpustakaan, bukan variabel lokal.
svick

Jawaban:

26

Saya tidak berpikir ada sesuatu seperti konvensi 'resmi'. Sejauh yang saya tahu, berikut ini dianggap praktik yang baik oleh banyak pengembang C # berpengalaman:

PascalCase for public member variables (string MyName = "James")

camelCase for local variables (string myName = "James")

_leadingUnderscore for private member variables (string _myName = "James")

Dengan pendekatan ini, orang dapat membedakan antara variabel lokal serta anggota publik dan pribadi dengan kasus huruf pertama mereka.

Seperti halnya konvensi pengkodean apa pun, ini juga tergantung pada preferensi pribadi. Karena itu, tidak ada jawaban yang pasti. Tujuan umum adalah menjaga agar kode dapat dibaca dan dipahami semaksimal mungkin.

glaed
sumber
3
+1 Ini dekat dengan gaya yang pernah saya lihat. Saya percaya ini umumnya diambil dari gaya yang digunakan dalam contoh MSDN. Biasanya saya melihat properti mendapatkan PascalCase, penduduk lokal mendapatkan camelCase, dan anggota pribadi mendapatkan _leadingUnderscore.
KChaloux
Apakah maksud Anda Fields atau Properties ketika Anda mengatakan variabel anggota?
Kaser
Pengembang Delphi cenderung parameter fungsi nama / metode dengan awalan mereka dengan 'a': (aParameter: string). Saya menyadari bahwa parameter pada dasarnya adalah variabel lokal, terutama ketika dilewatkan oleh nilai, tetapi seringkali sangat membantu untuk "melihat" bahwa var sebenarnya dilewatkan sebagai parameter. Apakah ada konvensi semacam itu di C #?
Marjan Venema
Dan satu lagi: bidang anggota. Delphians mengawali mereka dengan 'F'. Saya telah melihat C # kode yang menyatakan mereka dengan garis bawah: private string _SomeString. Apakah Anda mengatakan itu adalah konvensi? (Hanya mencelupkan jari kaki saya di C # dan bertanya-tanya tentang hal ini).
Marjan Venema
1
Ini tidak akurat. Ada konvensi penamaan yang dipublikasikan untuk anggota publik (dan kelas publik dll.).
svick
7

Konvensi Penamaan .Net Framework ( v4.5 , v1.1 ) agnostik tentang hal ini. Mereka tidak menentukan standar untuk penamaan variabel lokal. Anda harus memutuskan pada konvensi Anda sendiri untuk memberi nama ini.

Saya pribadi menggunakan camelCase, dan menyamarkan variabel anggota dari nama parameter dengan thisbila perlu. Tetapi garis bawah utama (yaitu _memberVariable) juga valid.

Robert Harvey
sumber
1
Ini persis alasan menggunakan konvensi penamaan - gunakan thisuntuk membedakan variabel lokal dari bidang / properti. 5 surat tambahan setiap kali terlalu banyak imho.
Sinatr