Özel özellikler, sınıfınıza dahil olan şeylerin davranışlarını özetlemek için çok yararlı olabilir. Özel olmaları, özelliklerin size verdiği sözdizimsel şekerden faydalanmamanız gerektiği anlamına gelmez.
Ancak verilen örnek kötüdür. Boilerplate mülk sahipleri ve bunun gibi ayarlayıcılar neredeyse her zaman kötü bir fikirdir. C # 3.0 veya üstünü kullanıyorsanız, otomatik özellikler çok daha iyi bir fikirdir:
private string Whatever { get; set; };
Bu daha kısa, daha temiz ve daha okunabilir. Aslında sadece destek değişkenini tanımlamaktan çok daha uzun değildir.
En önemlisi, otomatik özellikler, programın geri kalanının semantiğini değiştirmeden herhangi bir zamanda tam özelliklere dönüştürülebilir! Bu nedenle, doğrulama veya hata işleme eklemeniz gerekiyorsa, bunu kolayca yapabilirsiniz.
Olduğu gibi, ben her zaman bunu, (Ben bir tek okuma özelliği olamazdı yapıcı değere yazmak mümkün yalnızca zorlamak için bir utanç olduğunu düşündüm iletmenin türleri tercih ) ama bu C # 6.0 eklenmiştir olarak Aşağıdakileri yapmanızı sağlayan "Otomatik Özellik Başlatıcıları":
private string Whatever { get; } = ...;
veya
private string Whatever { get; };
ile birlikte
Whatever = ...;
yapıcı.