Sadece C # özellik yapısının özel erişim değiştirici ile de kullanılabileceğini fark ettim :
private string Password { get; set; }
Bu teknik olarak ilginç olsa da, özel bir alan daha az tören içerdiğinden bunu ne zaman kullanacağımı hayal edemiyorum :
private string _password;
ve ben şimdiye kadar içten edebilmek bırakmamızı gerektiren hayal bile edemiyorum olsun ama set veya set ama olsun özel alan:
private string Password { get; }
veya
private string Password { set; }
ancak iç içe / devralınan sınıfları olan bir kullanım durumu vardır veya bir get / set özelliğinin değerini geri vermek yerine sadece mantık içerebilirse de, özellikleri kesinlikle basit tutmaya ve açık yöntemlerin herhangi bir mantık yapmasına izin verirsem, örn GetEncodedPassword()
.
Herhangi bir nedenle C # özel özellikleri kullanan veya teknik olarak mümkün-ama nadiren kullanılan-gerçek kod yapıları sadece biri mi?
ek
Güzel cevaplar, bunları okurken özel mülkler için bu kullanımları kaldırdım:
- özel alanların tembel olarak yüklenmesi gerektiğinde
- özel alanlar fazladan mantığa ihtiyaç duyduğunda veya hesaplanan değerler olduğunda
- çünkü özel alanların hata ayıklaması zor olabilir
- "kendinize bir sözleşme sunmak" için
- serileştirmenin bir parçası olarak açık bir özelliği dahili olarak dönüştürmek / basitleştirmek
- sınıfınızda kullanılacak global değişkenleri kaydırma