C # programlama dilinde değişkenlerin isimlendirme kuralları [kapalı]


10

C # 'da Değişkenler hakkında bir video izliyorum. Yazar bir yöntemin içindeki bir değişkeni bildirir ve bunu şöyle adlandırır: string MyName = "James";

sorum şu: .Net Framework tarafından hangi sözleşmenin önerildiği. Yukarıdaki örnekte olduğu gibi Pascal kasası mı yoksa deve kasası mı?


Bu sizin hatanız olmadığını bilmediğiniz bu soru ile ilgili sorun, aslında C # için kanonik bir kongre olmamasıdır. Ortak sözleşmeler var; ne yazık ki birden fazla, ama burada saf bir fikirden başka bir şey cevaplamanız oldukça zor olacaktır. Üzgünüm, kapanış için oylama; benim önerim: Popüler github ve codeplex depolarında kodu okumak için biraz zaman harcayın, popüler olanların çoğunu yazan insanlar olarak hangi sözleşmeleri kullandıklarını görmek sektörde deneyimli kişilerdir ve bulacağınız kadar yaygın olan standarttır.
Jimmy Hoffa


1
@Yusubov Bunlar yerel değişkenlerin değil, kütüphanelerin ortak bölümlerinin adlandırılmasını tanımlar.
svick

Yanıtlar:


26

'Resmi' bir toplantı gibi bir şey olduğunu sanmıyorum. Bildiğim kadarıyla, aşağıdaki birçok deneyimli C # geliştiricisi tarafından iyi bir uygulama olarak kabul edilir:

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

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

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

Bu yaklaşımla, yerel değişkenler ile kamu ve özel üyeler arasında ilk harfleri ile ayırt edilebilir.

Tüm kodlama kurallarında olduğu gibi, bu da kişisel tercihlere tabidir. Bu nedenle kesin bir cevap yoktur. Genel bir amaç, kodu mümkün olduğunca okunabilir ve anlaşılır tutmak olmalıdır.


3
+1 Bu gördüğüm stile yakın. Genel olarak MSDN'nin örneklerinde kullanılan stilden alındığına inanıyorum. Genellikle mülklerin PascalCase, yerlilerin camelCaseve özel üyelerin bir _leadingUnderscore.
KChaloux

Üye değişkenleri söylediğinde Alanlar veya Özellikler mi demek istediniz?
Kaser

Delphi geliştiriciler bir 'a' öneki sayesinde adı fonksiyonu / yöntem parametreleri eğilimindedir: (aParameter: string). Parametrelerin, özellikle değere göre iletildiğinde, esasen yerel değişkenler olduğunu fark ediyorum, ancak bir değişkenin aslında bir parametre olarak aktarıldığını "görmek" genellikle çok yararlıdır. C # böyle bir sözleşme var mı?
Marjan Venema

Ve bir tane daha: üye alanları. Delphians onlara bir 'F' ekini ekler. Ben bir alt çizgi ile bunları beyan C # kodu gördük: private string _SomeString. Bunun bir konvansiyon olduğunu söyleyebilir misiniz? (Sadece parmaklarımı C # daldırma ve bu şeyleri merak ediyorum).
Marjan Venema

1
Bu yanlış. Kamu üyeleri (ve kamu sınıfları vb.) İçin yayınlanmış adlandırma kuralları vardır.
svick

7

Net Framework Adlandırma Kuralları ( v4.5 , v1.1 ) bu konuda agnostiktir. Yerel değişkenleri adlandırmak için bir standart belirtmezler. Bunları adlandırmak için kendi sözleşmenize karar vermelisiniz.

Ben şahsen camelCase kullanın ve thisgerektiğinde ile parametre adlarından üye değişkenleri belirsiz . Ancak önde gelen alt _memberVariableçizgiler (yani ) de geçerlidir.


1
Bu, tam olarak adlandırma kurallarını kullanmanın nedenidir - thisyerel değişkenleri alanlardan / özelliklerden ayırmak için kullanma . Her seferinde 5 ek harf çok fazla imho.
Sinatr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.