it-swarm.dev

Özel değişkenlerinizi C # olarak nasıl adlandırıyorsunuz?

En iyi uygulama nedir, C # 'daki özel değişkenler için en yaygın kabul gören adlandırma kuralları nedir?

  1. private int myInteger;
  2. private int MyInteger;
  3. private int mMyInteger;
  4. private int _myInteger;
  5. private int _MyInteger;
  6. Gizemli diğer seçenek

Hangisini kullanıyorsunuz ve neden? (Şirketim C # için oldukça yenidir ve kodlama standardımıza girmeyi denemek için en "endüstri tarafından kabul edilen" yöntemi seçmek istiyorum.)

25
Vaccano

MSDN sınıfı tasarım kılavuzları http://msdn.Microsoft.com/en-us/library/ta31s3bc.aspx seçenek 1'i önerir - myInteger.

Ben her zaman bu stili kullandım. _ Karakteri için kişisel bir sevmediğim var.

44
btlog

Yukarıdaki # 4 seçeneğini kullanıyorum:

private int _myInteger;

Değişken isimlerimde kapsam belirtisi olmasını seviyorum ve alt çizgi bu amaç için yeterli. Okuması da oldukça kolay.

25
Matt Dillard

Aşağıdaki adlandırma şemasını kullanıyorum:

  • Yerel kapsamlandırılmış değişkenler için 1. (myInteger)
  • Genel mülkler için 2. (MyInteger)
  • özel değişkenler için 4. (_myInteger)
16
Zafer

Seçenek 4'ün gerçekten en okunabilir seçenek olduğunu düşünüyorum. Bunu yapmak zorunda kalmanıza yardımcı olur:

public Person(string name, int age) 
{
    this.name = name;
    this.age = age;
}

Ayrıca tüm özel üyeleri daha da belirgin hale getirir. Aşağıdaki örnekte, halt age nereden geliyor? this niteleyicisi olmadan bunu söylemek daha zordur.

private void Method()
{
    var x = 2;
    var y = age + x;
}

Bunu anlamak çok daha kolay:

private void Method()
{
    var x = 2;
    var y = _age + x;
}
14
ChaosPandion

Öncelikle, PascalCasing genellikle sınıfın genel özellikleri, consts, yöntemler vb. İçin ayrılmıştır. Bu yüzden 2 ve 5'i atlardım.

İkincisi, Macarca gösterimi .NET dünyasında önerilmez, bu yüzden (uh, sanırım) 3 doğru. 3 ile olan bitenin bu olduğunu varsayarsak.

Bu deve ile bırakırCasing ve _camelCasing. Ben tipik olarak sınıf değişkenleri için _camelCasing ve bir yöntem veya daha dar kapsamlı değişkenler için düz eski camelCasing kullanın. Deve muhafazası, yöntem bağımsız değişkenleri, korumalı/özel değişken adları ve bir yöntemdeki veya daha dar kapsamdaki değişkenler için kullanılan kabul edilen standarttır.

Özel değişkenlerimin zekamda gruplandırılması için alt çizgiyle başlamayı da seviyorum. Ancak, bunu yalnızca bir türe dahil edilen değişkenler için yapıyorum. Bir yöntem veya daha dar bir kapsam içinde bildirilen değişkenler alt çizgiyi kapalı bırakıyorum. Onları ayrı tutmayı ve daha az kullanılan değişkenleri bir arada tutmayı kolaylaştırır.

10
Ripped Off

private int integer

Bir yöntem kapsamındaki üye ve yerel değişkenler arasında kafanız karışırsa, muhtemelen yeniden düzenleme yapmanız gerekir.

4
Ryan Roberts

Seçenek # 4'ü yapıyorum, çünkü SSCLI böyle görünüyor, ama dürüst olmak gerekirse özel değişkenin adlandırılmasında o kadar umrumda değil. Kamu farklı bir hikaye.

BTW unuttum m_MyInteger

2
Conrad Frix

Ben buna "benim" diye bir şey demezdim!

Ama söyleyebilirim

class C
{
     int VariableName { get; set; }
}

çoğu zaman bu açık değişkenlere sahip olmaktan daha iyidir. Açık bir özel değişkenim olsaydı ben int _variableName;

2
CJBrew

Bunu yapmanın en iyi yolunun (C # /. Net içinde zaten) 2 ve 6'nın bir kombinasyonu olduğuna inanıyorum:

private int MyInteger { get; set; }

Teorik olarak burada hiçbir değişken yoktur, ancak özel bir örnek değişkeni gibi görünür ve davranır. Bu değere bir iş mantığı eklememiz gerekiyorsa (bu tamamen dahili bir değerdir, bu yüzden istediğimiz her şeyi yapabiliriz) o zaman zaten bizim için 'özelliklidir'. Sıcak bir buhar fincan kazanın!

2
Task

alt çizgi ile.

Bill Wagner neden olduğunu açıklıyor Etkili C # . Ama asla bir tamsayı adlandırmam benim Tamsayı , _age veya _length gibi daha iyi bir şey. Örnek adına TypeName eklemek korkunç bir uygulamadır. İsimler kendi kendini açıklayıcı olmalı ve C # Tipi-Güvenli olduğu için türleri her zaman bulabilirsiniz.

1
Caspar Kleijne

C++ 'da editörleri çok değiştirdiğim için _ kullanma eğilimindeyim, bu da özel olup olmadığını görmeme izin vermiyor.

C # için Visual Studio özel olup olmadığını görmeme izin verir gibi _ uzakta bırakma eğilimindedir.

Bunu yapmak için Deve Kasası yöntemini kullanma eğilimindeyim.

1
Tamara Wijsman

Daha spesifik bir örnek vermelisiniz, ancak:

private int count, private int badFileCount, private static readonly int ReconnectAttemptsLimit

Bu arada, tüm bunları yüklediğinizde ve kullanmaya başladığınızda ÜCRETSIZ elde edersiniz MSFT Stylecop.

1
Job

4 kullanıyorum (private int _myInteger;) Çünkü:

private int myInteger;

Yerel değişkenlerimi böyle adlandırıyorum.

private int MyInteger;

Ben sabitleri böyle adlandırıyorum.

private int mMyInteger;

Bu C # tarzı değil.

private int _MyInteger;

Bu garip görünüyor.

1

ReSharper değişkenlerime isim verdim, sadece benim değil, herkes de bunu yapıyor. Projede büyük miktarda tutarlılık var.

0
Sevki

Seçenek 5'e göre gidiyorum: private int _MyFoo

_MyFoo'ya göre gerçek bir rekabet avantajı görmüyorum.

0
mafu

Juval Lowy'nin IDesign C # Kodlama Standardı oldukça popüler. Bu standart, özel üye değişkenlerin önüne "m_" (Seçenek 6) eklenmesini önerir. Ekibimizde böyle yapıyoruz.

private int m_myInteger;

Seçenek 4 (_myInteger) bu standardın kabul edilebilir bir varyasyonudur.

Yerel bir değişkenten özel bir üyeye anlatmayı zorlaştırdığı için MSDN önerisini (myInteger) beğenmedim. Onların önerileri, elbette, özel üyeleri benim için gereksiz görünen this ile niteleyerek bu sorunu çözüyor.

0
azheglov

myInteger gibi özel değişkenler için camelCasing kullanın

Bir önceki _ değişken, bir özelliği, karışıklıkları azaltmak için bir yedekse,
Değişken _myProperty özelliği için MyProperty

0
Gulshan