Not: Bu C # başladığımda gönderildi. 2014 bilgisiyle, otomatik özelliklerin C # dilinin başına gelmiş en iyi şeyler arasında olduğunu söyleyebilirim.
Özel ve ortak bir alan kullanarak C # özellikleri oluşturmak için kullanılır:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Şimdi, .NET 3.0 ile otomatik özellikler aldık:
public string Title { get; set; }
Bunun daha felsefi / sübjektif sorular olduğunu biliyorum, ancak her alan için beş satır kod kaydetme dışında bu otomatik özellikleri kullanmak için herhangi bir neden var mı? Benim kişisel yakınlığım, bu özelliklerin benden bir şeyler saklaması ve kara büyünün büyük bir hayranı değilim.
Aslında, gizli özel alan hata ayıklayıcıda bile görünmez, bu da get / set işlevlerinin hiçbir şey yapmadığı göz önüne alındığında tamamdır. Ama aslında bazı alıcı / ayarlayıcı mantığını uygulamak istediğimde, özel / ortak çifti yine de kullanmalıyım.
Daha sonra alıcı / ayarlayıcı mantığını değiştirme yeteneğini kaybetmeden kod çok (bir vs altı satır) kaydetmek yarar görüyorum, ama sonra tekrar ben zaten sadece bir ortak alan "Genel dize Başlık" bildirerek yapabilirim {get; Ayarlamak; } böylece daha fazla kod tasarrufu sağlar.
Peki, burada ne eksik? Neden birisi otomatik özellikleri kullanmak isteyesin ki?