tolpp.com
yazılım ve programlama günlüğü

C# - CSharp property kullanımı Jul 19, 2011

Property, C#’ta get ve set metodları kullanmadan private değişkenlere erişimi sağlayan, encapsulation olayını güzelleştirerek OOP’i zevkli hale getiren bir hededir.

bir değişken içindeki veriye ulaşabilmek için 40 takla atmanıza, propertyler sayesinde gerek kalmaz.

Örnek :

class MyC
{
private string _isim;
public string Isim
{
get { return _isim; } // getIsim() fonksiyonundan kurtaran get propertysi
set { _isim = value; } // setIsim(string isim) fonksiyonundan kurtaran set propertysi
}
public MyC(string s){this._isim=s;} //MyC sınıfımın yapıcı (constructor) metodu
}
MyC Tol = new MyC("Ali");
Tol.Isim = "Tolga"; // Property üzerinden MyC tipindeki Tol'un _isim değişkenine değer atıyorum
Console.WriteLine(Tol.Isim); // Tol.Isim diyerek Tol'un get propertysinden dönen değeri kullanıyorum
Bu da bize getIsim() setIsim(string isim) gibi fonksiyonlarla uğraşmak yerine, veriye örnekteki gibi kolaylıkla ulaşmamızı sağlar:

Ayrıca, get ve set alanlarının içi istenildiği şekilde değiştirilerek kontroller yapılabilir, istenen değer atanabilir. Veya, get veya set ‘lerden istediğimizi yazmayarak, propertinin salt okunur veya salt yazılır olmasını sağlayabiliriz.

Propertylerin diğer bir güzelliği de, metodlara göre daha hızlı çalışmaları. Yazılmış program JIT compiler ile derlenirken, property’ler inline yapılarak intermediate language haline getiriliyormuş*.

*Kaynak : Professional C# 2005 with .NET 3.0 : Nagel, Evjen, Glynn,Watson,Skinner