Serdar YILMAZ
Bizimkisi Bir “Bug” Hikayesi...
Serdivan/Sakarya
Serdar Yılmaz C# – GET ve SET Metotları

C# – GET ve SET Metotları

dotnet

Set ve Get metotlarını birer kontrol mekanizması olarak düşünebiliriz. Olası problemleri önlemek, işlemleri güvenilir ve kontrollü bir şekilde gerçekleştirmek için Set ve Get metotlarını kullanırız.

Basit bir senaryo üzerinden konumuzu açıklamaya devam edelim. Otel otomasyonu için müşteri bilgilerini tutan bir sınıf tasarladığımızı düşünelim. Müşterinin ad-soyad, TC kimlik numarası ve oda numarası bilgilerini tutmak istiyorsak aşağıdaki gibi bir tasarım yapabiliriz.

Musteri sınıfının üyeleri public olarak bildirildiği için bu üyelere doğrudan erişilip değerler atanabilir. İşte bu noktada kontrolü elimize almamız lazım aksi taktirde TC kimlik numarası eksik/fazla girilebilir veya 120 odalı bir otelde oda numarası negatif veya 120’den büyük girilebilir. Amacımız dikkatsizlik sonucu yaşanabilecek olası sorunların önüne geçmek. Bu yüzden üyelere doğrudan erişimi engelleyip (Private), Get ve Set metotları ile kontrollü bir erişim sağlayacağız.

Sınıfın AdSoyad, TCNo, OdaNo üyelerini diğer sınıfların erişimine kapattık (private) ve bu üyelere olan erişimi adsoyad, tcno, odano özellikleri üzerinden kontrollü bir şekilde sağladık. (else bloklarında exception fırlatabilirdik ancak istisnai durum yönetimini anlatmadığımız için şimdilik es geçiyoruz.)

GET Metodu

Bir özelliğin değeri okunmak istenildiğinde o özelliğe ait GET metodu çalışır.

Console.WriteLine(m1.adsoyad);

m1 nesnesinin içerisindeki adsoyad özelliğinin Get metodu çalışacaktır.

SET Metodu

Bir özelliğe atama yapılmak istenildiğinde o özelliğe ait SET metodu çalışır. Atanan değere SET metodu içerisinde value anahtar sözcüğü ile erişilir. value anahtar sözcüğünün önceden belirlenmiş herhangi bir türü yoktur. Özelliğe atanacak değer hangi türden ise value da o türden olur.

m1.adsoyad=”Serdar Yılmaz”;

m1 nesnesinin içerisindeki adsoyad özelliğinin SET metodu çalışacaktır ve value ifadesi “Serdar Yılmaz” değerini alacaktır.

Bir özelliğin sadece GET metodunu tanımlayarak özelliği sadece okunabilir hale getirebiliriz.

Erişim Belirleyicisi Kullanımı

GET ve SET metotlarında erişim belirleyicilerini kullanarak erişimin sınırlarını belirtebiliriz.

Yukarıdaki örneğimizde SET metodu private olarak bildirildi. Bu yüzden diğer sınıflardan adsoyad özelliğinin değeri okunabilir ancak herhangi bir atama yapılamaz (set metoduna sadece sınıfın içinden erişilebilir). Eğer SET metodunu private olarak bildirmeseydik; adsoyad özelliği public olduğu için SET metodu da otomatikmen public olacaktı.

GET ve SET metotları için herhangi bir erişim belirteci bildirilmezse, varsayılan olarak özelliğin erişim belirtecini alırlar.

Serdar YILMAZ


Bu İçeriği Arkadaşlarınızla Paylaşmak İster misiniz?

5 Yorum

  1. Nurettin
    12 Mayıs 2018 de 22:40 · Cevapla

    olması lazım değilmiydi

  2. Nurettin
    12 Mayıs 2018 de 22:36 · Cevapla

    11 15 This.AdSoyad 23 28 This.TCNo 37 42 OdaNo satırlarında

    • Serdar Yılmaz
      14 Mayıs 2018 de 00:35 · Cevapla

      Merhaba,

      Bu uygulama için this anahtar sözcüğünü kullanma mecburiyetiniz bulunmamaktadır. This anahtar sözcüğünün kullanımı hakkında bilgin edinmek için aşağıdaki içeriğe göz gezdirebilirsiniz.

      http://www.srdrylmz.com/c-this-anahtar-sozcugu/

  3. umut
    20 Kasım 2017 de 01:55 · Cevapla

    abi adamsın

  4. murat
    16 Ekim 2017 de 13:02 · Cevapla

    Konu için teşekkürler, öğrenmiş oldum. Oldukça kullanışlı bi yapı.
    Kullanıcının girdiği veri kontrollerini ben farklı metotlarda yapıyordum zaten ama sanırm son bir kontrolu de bu sekilde eklesem iyi olur…

Bir Yorum Yapın