SORU
22 Temmuz 2010, PERŞEMBE


C özel özellikleri kullanmak için herhangi bir sebep var#mı?

Ben sadece fark ettim C#emlak inşaayrıca kullanılabilirözelerişim değiştirici:

private string Password { get; set; }

Bu teknik olarak ilginç olsa da, bir yana kullanırdım zaman hayal bile edemiyorumözel alaniçerir biledaha az töreni:

private string _password;

ve hiç içten olmak lazım ve ben hayal bile edemiyorumolsunama değilayarlayınyaayarlayınama değilolsunözel alan:

private string Password { get; }

ya

private string Password { set; }

ama belki de bir senaryo variç içe / sınıflar miras kaldıya da belki de bir set nereden içerebilirmantıksadece özellikleri kesinlikle basit tutun ve açık yöntemler izin eğiliminde olacaktır, ancak bu özelliğin değerini geri vererek, yerine herhangi bir mantık, GetEncodedPassword() ör.

Herkes C özel özellikleri kullanın# herhangi bir nedenle ya da bu teknik olarak mümkün, ama nadiren-gerçek kullanılan kod yapıları bunlar mı sadece?

Ek

Güzel cevap, onları okumaya özel özellikleri için bunları kullanır ben itlaf:

  • özel alanlar, tembel yüklü olması gerekir
  • özel alanlar ekstra mantık lazım veya hesaplanmış değerlerdir
  • özel alanlar beri zor olabilir hata ayıklama için
  • sırada "kendin için bir sözleşme var"
  • dahili/dönüştürmek için seri hale getirme bir parçası olarak sunulan bir özellik kolaylaştırır
  • sarma global değişkenler sınıf içinde kullanılacak

CEVAP
22 Temmuz 2010, PERŞEMBE


Önbellek için bir değer ihtiyacım var ve tembel yüklemek istiyorsanız onları kullanıyorum.

private string _password;
private string Password
{
    get
    {
        if (_password == null)
        {
            _password = CallExpensiveOperation();
        }

        return _password;
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • Plugable

    Plugable

    19 Mayıs 2010
  • Yanko Kral

    Yanko Kral

    8 HAZİRAN 2006