Set ve Get Sözcükleri

      Sınıflarda tanımladığımız değişkenleri çağırırken ve değer ataması yapılırken kendi kontrollerimizi ve özelliklerimizi de yazabiliriz.

   public class Ogrenci
    {
        public string Adi { get; set; }
        public string Soyadi { get; set; }
        public int Numara { get; set; }
        public double Ortalama { get; set; }
    }

      Öncelikle bir önceki  C# Sınıflar makalesinde kullandığımız öğrenciler sınıfımıza geri dönecek olursak, burada öğrenciye ait temel özellikleri (adı,soyadı, numarası, ortalaması) değişken olarak tanımlarken “{get;set;}” yazım şeklini kullandık. Burada kullandığımız yapı, ilgili nesnede “nesneAdi.DegiskenAdi= atanacak_deger”  dediğimizde nesnenin içerisinde ilgili değişkene verdiğimiz değeri atamış oluyoruz. Aynı şekilde kullanmak istediğimizde de “nesneAdi.DegiskenAdi” dediğimizde bize ilgili değişken içindeki değer dönüş yapmaktadır.

      Yukarıdaki yazım şekli aynı zamanda aşağıdaki yazım şeklinin de kısaltılmış halidir. Örneğin Öğrenciye ait “Adi” özelliğimizi bir diğer şekilde tanımlamak istersek;

public class Ogrenci
    {
        private string _adi { get; set; }
        public string Adi
        {
            get
            {
                return _adi;
            }
            set
            {
                _adi = value;
            }
        }

        public string Soyadi { get; set; }
        public int Numara { get; set; }
        public double Ortalama { get; set; }
    }

    “get;set; “ yazım şeklini açık kullandığımız durumlarda “value” anahtar sözcüğünü kullanmamız gerekmektedir. Bu sözcüğe ait herhangi bir tanımlama yapmanız gerekmemektedir. “Set” içerisinde iken doğrudan kullanabilirsiniz. “value” anahtar sözcüğü için tür ataması yapmanıza gerek yoktur, atandığı veri türünün cinsini dinamik olarak almaktadır.

      Özelliğe yapılacak atama aşamasında kendi satırlarımızı da yazabilir, değeri kontrol edebiliriz.

      Aşağıda öğrenci sınıfında ortalama değerini 0 ile 100 arasından farklı değerlerde 0’a eşitlediğimiz bir kontrol ekledik. Siz de sınıflarınız için, farklı durumlara göre aşağıdaki yapıda kendi “set” kontrollerinizi yazabilirsiniz.

private double _ortalama { get; set; }
        public double Ortalama
        {
            get
            {
                return _ortalama;
                
            }
            set
            {
                if (value < 0 || value > 100)
                {
                    _ortalama = 0;
                }
                else
                {
                    _ortalama = value;
                }
            }
        }

 

 

Add comment