ReadOnly - WriteOnly Automatic Properties

Friday, February 22, 2008 12:21:58 PM (GTB Standard Time, UTC+02:00)
 C# 3.5 ile gelen yeniliklerden bir taneside Automatic Property' ler. Automatic property' ler ile normal şartlarda ;

private int GizliDegisken;
public int OrnekOzellik
{
    get
    {
       return this.GizliDegisken;
    }
    set
    {
       this.GizliDegisken = value;
    }
}
ifade edilen kod bloğunu eğer herhangi istisnati bir durum yok ise (Business Rule olabilir) aşağıdaki şekilde yazabilmekteyiz ;

public int OrnekOzellik { get; set; }
Compiler bu kod satırını derlediğinde aslında ilk örnekte ifade edilen kod bloğunu MSIL oalrak çıkarmaktadır.

Bir süre öncesine kadar internet üzerindeki birçok ortamda bu şekilde ifade edilen özellik tanımlamalarında ReadOnly ya da WriteOnly tanımlamasının yapılamadığı bunun çok büyük bir eksik olduğu yazılmaktaydı.

Yani ;

public int Ozellik { get; } gibi bir ifadenin normal şartlarda ReadOnly bir özellik olması beklenirken Compiler tarafından derlenmediğini ve hata verdiğini deneyerek farkedebilirsiniz.

Bunun çözümünü aşağıdaki şekilde C# 3.5' ta çözüme kavuşturmuşlar.

Olmasını istemediğini accessor' un başına private keyword' ünü ekleyerek özelliğin ReadOnly yada WriteOnly olmasını sağlayabilirsiniz.

public int Ozellik { get; private set; }

// ReadOnly Bir Ozellik

public int Ozellik { private get; set; }

// WriteOnly Bir Ozellik