Merhaba, bu yazıda C# get set (properties) konusunu konusunu anlatacağım. Properties, bir sınıfın veya yapı (struct) tipinin üyeleri olan özel bir tür değişkendir. Properties, sınıfın veya yapı tipinin dışından erişilebilen değerleri temsil eder. Properties, alanlar (fields) gibi davranır, ancak alanlardan farklı olarak değerleri okumak veya yazmak için get ve set anahtar kelimeleri ile tanımlanan kod bloklarını kullanır. Bu kod blokları, properties’in değerini kontrol etmek, doğrulamak veya değiştirmek için kullanılabilir.
Properties, sınıfın veya yapı tipinin içinde şu şekilde tanımlanır:
public class Person {
private string name; // private alan
public string Name // public property
{
get // okuma erişimi
{
return name;
}
set // yazma erişimi
{
name = value; // value anahtar kelimesi ile gelen değeri atama
}
}
}
Bu örnekte, Person sınıfının bir name alanı ve bir Name property’si vardır. name alanı private olduğu için sınıfın dışından erişilemez. Name property’si ise public olduğu için sınıfın dışından okunabilir ve yazılabilir. Name property’sinin get bloğu, name alanının değerini döndürür. set bloğu ise value anahtar kelimesi ile gelen değeri name alanına atar.
Properties kullanmanın avantajları şunlardır:
- Properties, sınıfın veya yapı tipinin arayüzünü (interface) belirler. Arayüz, sınıfın veya yapı tipinin nasıl kullanılacağını tanımlar. Properties, arayüzü değiştirmeden sınıfın veya yapı tipinin iç yapısını değiştirmeye olanak sağlar. Örneğin, name alanının tipini string yerine char[] olarak değiştirsek bile Name property’si aynı şekilde çalışmaya devam eder.
- Properties, sınıfın veya yapı tipinin verilerine erişimi kontrol etmeyi sağlar. Örneğin, get veya set bloklarında değerleri doğrulayabilir, hata fırlatabilir veya başka işlemler yapabiliriz. Örneğin, Name property’sinin set bloğunda gelen değerin boş olup olmadığını kontrol edebiliriz.
- Properties, sınıfın veya yapı tipinin davranışını değiştirmeyi sağlar. Örneğin, get veya set bloklarında başka bir sınıfın veya yapı tipinin bir metodunu çağırabilir, bir olayı (event) tetikleyebilir veya bir bildirim gönderebiliriz.
Properties kullanmanın dezavantajları şunlardır:
- Properties, performans açısından alanlardan (fields) daha yavaş çalışır. Çünkü her seferinde get veya set bloğunun çalıştırılması gerekir. Bu nedenle, çok sık kullanılan veya çok basit olan veriler için field kullanmak daha uygun olabilir.
- Properties, derleme zamanında (compile time) değil, çalışma zamanında (run time) kontrol edilir. Bu nedenle, properties’in değerini okumak veya yazmak istediğimizde hata alabiliriz. Örneğin, get veya set bloğunda bir istisna (exception) fırlatılırsa program durdurulur.
Bu yazıda C# dilinde Get Set konusunu anlattım. Umarım yararlı olmuştur. Yeni başlayanlar için önemli bir konu olduğunu düşünüyorum. Soru veya görüşlerinizi yorumlarda paylaşabilirsiniz.
C# ile ilgili diğer yazılarım için: C# – Bizneyapiyoruzki