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

  • 99being99

    99being99

    2 EYLÜL 2008
  • huyked

    huyked

    28 Mart 2008
  • PamtheBlamofficial

    PamtheBlamof

    31 Aralık 2010