C# ‘da, Property, sınıf değişkeninin bir uzantısıdır ve sınıf değişkeninin değerini, uygulamalarımıza harici erişim yolunu etkilemeden okumak, yazmak veya değiştirmek için bir mekanizma sağlar.
C# ‘da, özellikler erişimciler adı verilen bir veya iki kod bloğu içerebilir ve bunlara erişim erişimcisi ve ayar erişimcisi adı verilir. get ve set erişimcilerini kullanarak, sınıf değişkenlerinin dahili uygulamasını değiştirebilir ve gereksinimlerimize bağlı olarak ona dış erişim yolunu etkilemeden bunu açığa çıkarabiliriz.
Genel olarak, C# gibi nesne yönelimli programlama dillerinde, alanları özel olarak tanımlamanız ve ardından get ve set erişimcileriyle değerlerine genel bir şekilde erişmek için özellikleri kullanmanız gerekir.
Aşağıda, C# programlama dilinde get ve set erişimcisi ile bir özelliği tanımlamanın sözdizimi verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <erisim_degistirici> <donus_degeri> <ozellik_adi> { get { // return değeri } set { // set değeri } } |
Yukarıdaki sözdizimini gözlemlerseniz, gereksinimlerimize göre sınıf değişkenlerinde gerekli değişiklikleri yapmak için get ve set erişimcileri ile birlikte bir özellik tanımlamak için bir erişim değiştirici ve dönüş türü kullandık.
Burada, erişimci kod bloğu, özellik her okunduğunda çalıştırılacak ve özellik yeni bir değere her atandığında set erişimcisinin kod bloğu çalıştırılacaktır.
C# ‘da, özellikler üç tür olarak kategorize edilir, bunlar.
Tipi | Tanımı |
---|---|
Yazma-Okuma | Hem get hem de set erişimcileri içeren bir özellik, daha sonra onu okuma-yazma özelliği olarak adlandıracağız. |
Sadece Yazma | Sadece get erişimcisi içeren bir özellik, daha sonra onu salt okunur özellik olarak adlandıracağız. |
Sadece Okuma | Sadece set erişimci içeren bir özellik, o zaman onu salt yazılır özellik olarak adlandıracağız. |
C# içinde, Özellikler herhangi bir parametreyi kabul etmez ve bir özelliği uygulamamızda ref veya out parametresi olarak iletmemeliyiz.
Aşağıda, C# programlama dilinde bir özel değişken ve bir özellik tanımlamanın basit bir örneği verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 | class Kisi { private string ad; public string Ad { get { return ad; } set { ad = value; } } } |
Yukarıdaki örneği gözlemlerseniz, “Ad” adında bir özellik tanımladık ve bir özellik değeri döndürmek ve erişimcileri yeni bir değer ayarlamak için ayarlamak için bir alma erişimcisi kullandık. Burada, set erişimcisindeki value anahtar sözcüğü, set erişimcisi tarafından atanan bir değeri tanımlamak için kullanılır.
C# ‘da get erişimcisinin yalnızca alan değerini döndürmek veya onu hesaplamak ve döndürmek için kullanılması gerekir, ancak bunu bir nesnenin durumunu değiştirmek için kullanmamalıyız.
Tartışıldığı gibi, get ve set erişimcileri özelliklerini kullanarak sınıf değişkenlerinin davranışını genişletebiliriz. Aşağıda, C# programlama dilinde get ve set erişimcileri kullanarak özellikteki özel değişkenin davranışını genişletme örneği verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Kisi { private string ad="Ahmet Can"; public string Ad { get { return ad.ToUpper(); } set { if(value=="Ahmet") ad = value; } } } |
Yukarıdaki örneği gözlemlerseniz, özel değişken adının davranışını get ve set erişimcileri ile Ad adlı bir özelliği kullanarak, set erişimcisini kullanarak Ad değerinin yalnızca “Ahmet” e eşit olduğundan emin olmak ve özellik metnini şuna dönüştürmek gibi bazı doğrulamalar gerçekleştirerek genişletiyoruz.
Burada “ad” alanı özel olarak işaretlenmiştir, bu nedenle bu alanda herhangi bir değişiklik yapmak isterseniz, bunu yalnızca özelliği (Ad) arayarak yapabiliriz.
C# özelliklerinde, bir özelliğin değerini okurken get erişimcisi çağrılır ve özelliğe yeni bir değer atadığımızda, yeni değeri sağlayan bir bağımsız değişken kullanılarak set erişimcisi çağrılır.
Aşağıda, C# programlama dilinde özelliklerin get ve set erişimcilerini çağırma örneği verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | using System; class Kisi { private string ad="Ahmet Can"; public string Ad { get { return ad.ToUpper(); } set { if(value=="Ahmet") ad = value; } } } class MainClass { public static void Main (string[] args) { Kisi kisi=new Kisi(); kisi.Ad="Kemal"; Console.WriteLine(kisi.Ad); } } |
1 2 3 | AHMET CAN |
C# Sadece Okunabilir Özellik Oluşturma
Daha önce de tartışıldığı gibi, bir özellik tek alma erişimcisini içeriyorsa, onu salt okunur özellik olarak adlandıracağız. Aşağıda, c# programlama dilinde salt okunur özellikler oluşturma örneği verilmiştir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System; class Kisi { private int yas=10; public int Yas { get { return yas; } } } class MainClass { public static void Main (string[] args) { Kisi kisi=new Kisi(); Console.WriteLine(kisi.Yas); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | using System; class Kisi { private int yas=10; private DateTime dtarih; public DateTime Dtarih { get { return dtarih; } set {dtarih = value; } } public int Yas { get { return DateTime.Now.Year - dtarih.Year; } } } class MainClass { public static void Main (string[] args) { DateTime tarih = DateTime.Parse("1995-05-05"); Kisi kisi=new Kisi(); kisi.Dtarih=tarih; Console.WriteLine(kisi.Yas); } } |
C# Property (Get, Set) Örneği
Buradaki basit örnekte Kisi sınıfı ad, yas ve doğum tarihi değerlerine sahip olacak. Sınıftaki ad, doğum tarihi değerleri değiştirilebilir yas değeri değiştirilemez yapılacak.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | using System; class Kisi { private string ad; private int yas=10; private DateTime dtarih; public string Ad { get { return ad; } set {ad = value; } } public DateTime Dtarih { get { return dtarih; } set {dtarih = value; } } public int Yas { get { return DateTime.Now.Year - dtarih.Year; } } } class MainClass { public static void Main (string[] args) { DateTime tarih = DateTime.Parse("1995-05-05"); Kisi kisi=new Kisi(); kisi.Ad="Kemal"; kisi.Dtarih=tarih; Console.WriteLine(kisi.Ad); Console.WriteLine(kisi.Yas); } } |
1 2 3 4 | Kemal 25 |
Yorum Yap