set sözcüğü nesnenin özelliklerine değer atandığında çalışır. get sözcüğü ise özellik değeri okunduğunda ya da farklı bir ifadeye aktarılmaya çalışıldığında çalışır.
Aynı örneğin Get & Set kullanarak ve kullanılmadan yapılan aşağıdaki örnekleri incelerseniz kullanımlarını daha iyi anlayabilirsiniz..
class MetotSinif { int Sayi; public void SayiBelirle(int sayi) { if (sayi < 0) Sayi = 0; else Sayi = sayi; } public int SayiyiAl() { if (Sayi > 100) return Sayi / 100; else return Sayi; } } static void Main(string[] args) { MetotSinif nesne = new MetotSinif(); nesne.SayiBelirle(34); Console.WriteLine(nesne.SayiyiAl()); }
class MetotSinif { int Sayi; public int SahteOzellik { set { if (value < 0) Sayi = 0; else Sayi = value; } get { if (Sayi > 100) return Sayi / 100; else return Sayi; } } } static void Main(string[] args) { MetotSinif nesne = new MetotSinif(); nesne.SahteOzellik = 200; Console.WriteLine(nesne.SahteOzellik); Console.ReadKey(); }
İki programda aynı şeyi yapmaktadır kendisine gelen sayı 100’den küçükse aynı değeri geri gönderiyor büyükse bölme işleminin sonucunu gösteriyor…
İkinci örnekte gönderilen bilgi 100’den küçükse değişkene gönderilen bilgi atanacağı için SET, 100’den büyükse işlem yapılıp sonuç gönderileceği içinde GET metodu çalıştırılacaktır. kısaca
GET metodu: Değişken çağırıldığında çalışır.
SET metodu: Değişkene değer atandığında çağırılır. Değişken kontrolleri bu metod içinde yapılır.
Get ve Set Metodu ile yapılmış bir başka örnek
1 ile 100 arasındaki sayıların toplamını bulan program:
class Program { class Topla { public int tpl; public Topla(int toplam) { tpl = toplam; } public int Toplama { get { return tpl;} // değeri görüntüleme set { tpl= value+tpl;} // yeni değeri depola } } static void Main(string[] args) { Topla ekle = new Topla(0); Console.WriteLine("Başlangıç değeri->" + ekle.Toplama); for (int i = 1; i <= 100; i++) ekle.Toplama = i; Console.WriteLine("Sayıların toplamı" + ekle.Toplama); Console.ReadKey(); }
yzınca çalışmadı program hata mı var
https://onlinegdb.com/HkAP0qIEO
https://onlinegdb.com/SJeFA5UNd
uygulamalarda sorun yok ama tekrar kontrol ederseniz