İçeriğe geç

Get – Set Nedir? Get – Set Nasıl Kullanılır?

Get ve set kavramları aslında temelde belli özelliklerin (property) yönünü belirtir diyebiliriz. Bir çoğumuzun bildiği üzere get, Türkçede => Almak, Set ise Türkçede => Ayarlamak anlamında kullanılmaktadır. Aslında yazılım dillerinde de durum hiç farklı değil. Türkçe karşılıklarının gerektirdiği şekilde kullanılmaktalar.

Peki yazılımda ayarlamak ve almak (get, set) kavramlarını ne için ve genellikle nerelerde kullanırız? Elbette belli bir kalıp halinde kullanıyoruz. Kalıptan kastım, aslında belli bir yordam için kullanıyoruz. Örneğin bir sınıfa ait bir değişken tanımladığımızı düşünelim. Değişkenimizin tipi karakter katarı (string) olsun. Bu değişkeni tanımlarken get ve set özelliğine sahip olduğunu, yani hem ayarlanabilir (set) hem de okunabilir (get) özelliğinde olduğunu da aşağıdaki gibi belirtelim.

public string TCIdentity { get; set; }

İşte bu şekilde tanımladığımızda “TCIdentity” isimli değişkenimizin hem ayarlanabilir hem de içeriği okunabilir bir değer olduğunu kodumuzda belirtmiş olduk.

GET Ne demektir?

Yukarıda da bahsettiğim şekilde “Almak” anlamını taşımaktadır. Eğer bir değişkenin içeriği yazılımımızın başka bir bölümünden erişilip okunabilecek ise bu durumda o özelliği (property) GET özellikli olarak tanımlamamız gerekmektedir.

public string TCIdentity { get; }

Bu şekilde tanımlanana değişkenin içeriği sadece okunabilir. Ancak programımızın başka bir noktasında değiştirilemez. Şimdi biraz daha anlaşılması için bir örnek yapalım ve alt kısmında detaylı açıklayalım bunu isterseniz.

    public static class Degiskenler
    {
        public static string TCIdentity { get; set; }
 = string.Empty;
        public static bool TCIdentityIsOK
        {
            get
            {
                if (!string.IsNullOrWhiteSpace(TCIdentity) && TCIdentity.Length == 11)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            if (Degiskenler.TCIdentityIsOK)
            {
                Console.WriteLine("TC kimlik numarası geçerli.");
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("Üzgünüz, geçersiz TC kimlik numarası!");
                Console.ReadKey();
            }
        }
    }

Kodumuzun ilk kısmı “public static class Degiskenler” bir değişkenler sınıfı barındırıyor. Buradaki iki ayrı tipteki değişkeni incelemek ister isek şöyle açıklayabiliriz.

İlk satırda “get ve set” özelliğine sahip, yani okunabilir ve yazılabilir (değiştirilebilir) bir değişken. İkinci satırdaki ise sadece “get” özelliğine sahip, yani sadece okunabilir bir değişken. Ancak buradan ne okuyacağımıza yine biz daha o özelliği yazarken karar veriyoruz.

Aslında buradaki örnek kodun amacı, değişkene atayacağımız değeri başka bir değişken ile bizim verdiğimiz kriterlere uygun mu onu kontrol etmek. Yani tc kimlik numarasına girmiş olduğumuz değer geçerli bir değer mi onu kontrol etmiş oluyoruz. Bu sebep şekilde de kullanıcıdan tekrar girmesini isteyebilir veya doğru ise işlemimize devam edebiliriz.

Kodumuzda;

public static string TCIdentity { get; set; }

TCIdentity değişkeni standart bir string değişken. Hem okunabilir hem de yazılabilir. Ancak;

public static bool TCIdentityIsOK
{
    get
    {
        if (!string.IsNullOrWhiteSpace(TCIdentity) && TCIdentity.Length == 11)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

“TCIdentityIsOK” değişkeni için aynı sını söyleyemeyiz. Çünkü koddan da göreceğiniz gibi sadece okunabilir bir değişken. Peki bu değişken neyi okuyor? Tabii ki bir üstteki TCIdentity değişkenini. Bu değişken eğer boş veya tanımsız ise veya onbir karakter uzunluğunda değil ise bize “false” yani yanlış döndürüyor. Ancak bu kriterlere uygun ise o zaman “true” yani doğru fırlatıyor ve biz de gönül rahatlığı ile işlemimize devam edebiliyoruz.

İşte gördüğünüz gibi get ve set özelliğinin kullanımı kısaca böyle.

GET => Değişken okunmak istendiğinde eğer değişken GET özellikli tanımlandı ise okunacak sonucu,
SET => Değişken içeriği değiştirilmek istendiğinde eğer değişken SET özellikli tanımlandı ise yazılabilmesini sağlıyor.

Eğer sorularınız veya eksik gördüğünüz bir taraf var ise lütfen yorumlardan yazmayı ihmal etmeyin.

Herkese iyi çalışmalar…

4 5 votes
Article Rating
Tarih:AnasayfaÇerez Bilgiler
Subscribe
Bildir
guest
6 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
mehmet
mehmet
1 yıl önce
if (!string.IsNullOrWhiteSpace(TCIdentity) şu kısmında yaptığınız ünlemi açıklabilir misiniz ?
pasaj memuru
8 ay önce

Kardeşim Get-Set’i anlatmışsın ancak çok yüzeysel, kim bu yazıdan, get nedir ve set nedir den başka ne anlayacak ?
private a;
1.public A {get=>a; set=>a=value;}

2. public A {get=>a private set=>a=value;}

3. public A{get; set;}

bunların farkları nelerdir, 3. örnek public olmasına rağmen güvenliği nasıl sağlıyor, veriyi nereden alıp nereye yazıyor
2. örnek’de set’i private yapacak ise ve sadece aynı sınıf içinde kullanılabiliyorsa yazmanın ne anlamı var vs.
insanlara ezberletmekten ziyade anlatman lazım kardeşim, sen hiçbirşey anlatmamışsın ki.

Cemil
Cemil
7 ay önce

Gayet açık ve anlaşılır olmuş Erkan hocam. Elinize, emeğinize sağlık. Anlamayıp, eleştiren arkadaşlar çalışmaya alfabeden başlayabilirler. Yada şuradan devam edebilirler. İyi çalışmalar dilerim

6
0
Would love your thoughts, please comment.x