SORU
30 EKİM 2013, ÇARŞAMBA


Nasıl özellik özyineleme önlemek için

Bu günlerde üzerinde çalıştığım bir proje üzerinde vurdu. Çoğu insan özelliği özyineleme ile tanıdık

public int Test 
{
   get { return this.test; }
   set { this.Test = value; }
}
private int test;

Yanlışlıkla bu ayarlayıcı üst durumda bir T koymak ve StackoverflowException kendini açtın. Daha da kötüsü, eğer tanımladığınız değilse, genellikle visual studio otomatik düzeltme geçersiz duruma senin için muhafaza edecek.

Bir şey yapıcı ancak benzer geçenlerde yaptım:

public TestClass(int test)
{
    this.Test = Test;
}

Ne yazık ki burada bir StackOverflowException alamadım, şimdi bir programlama hatası var. Benim durumumda bu değer yerine beni yanlış atanan vardı aslında Bayan neden olan varsayılan değeri 0 bile değil) kullanılan bir Java eklentisi geçildi. Entegrasyon testleri bu hizmeti söylemedi çünkü hepsi geçti

"Hey gerçekten çok önemli bu alan unuttun!"

Adımları ben davranış bu tür önlemek için ne yapabilirim? Her zaman aşağıdaki gibi değişkenleri tanımlama karşı söylendi, ve onları kişisel olarak sevmiyorum, ama başka bir seçenek düşünemiyorum:

private int _test;
private int mTest;

EDİT

Veya m alt çizgi önek nedenleri normal olarak aklıma gelen istenmeyen

  • Okunabilirlik
  • Biraz stilleri karışımı olsun 3 parti sınıflar devralmasını iseniz üyeleri gezinmek için daha zor.

CEVAP
30 EKİM 2013, ÇARŞAMBA


En iyi yol "Otomatik uygulanan özellikler" burada.

public int Test { get; set; }

"Otomatik uygulanan özellikler" nedense _ önek(ama tercih etmiyorum) kullanın. kullanmayın mümkünse

Eğer siz de bazı önekler kullanmayı tercih etmiyorsanız, o zaman başka bir seçenek vardır. Elle özellik kod yazmak zorunda değilsiniz. IDE sizin için yapalım; böyle dikkatsiz hatalar önleyebilirsiniz. (Orijinal cevap bu kadar özlediğimi bilmiyorum)

Yazın sadece

private int test;

Seç alanında, Sağ tıklayın Yeniden Düzenle->Alanı Çevreliyor. IDE aşağıda sizin için mal parçacığı oluşturur.

public int Test
{
    get { return test; }
    set { test = value; }
}

Bağlam menüsünü tıklatarak rahatsız olmanıza gerek yok. Eğer klavye isterseniz, kısayolCtrlRE.

Ya da bir Resharper, aptalca hata, hemen işaret eder.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008