📘 7.3 – Get-Set Yöntemleri
🔹 Açıklama:
C# dilinde get ve set blokları, kapsülleme (encapsulation) mekanizmasının en önemli araçlarıdır. Bu bloklar sayesinde sınıf içindeki değişkenler dış dünyaya kontrollü şekilde açılır.
get: Değerin okunmasını sağlar.
set: Değerin atanmasını sağlar ve burada giriş kontrolü yapılabilir.
Bu yöntemler sayesinde:
- Veri doğruluğu korunur
- Gerektiğinde sadece okuma veya sadece yazma işlemi aktif olur
- Programın bütünlüğü bozulmadan genişletilebilirlik sağlanır
📍 Kullanım Alanları:
- Şifre, yaş, TC kimlik numarası gibi doğrulanması gereken alanlar
- Kullanıcı adının boş geçilmesini engellemek
- Salt okunabilir sabit değerler sunmak
- Formdan gelen verileri doğrulayıp uygun formata dönüştürmek
🎯 Kazanımlar:
- get ve set bloklarının yapısını kavramak
- Doğrulama işlemini sınıf seviyesinde gerçekleştirmek
- Salt okunabilir (readonly) ve salt yazılabilir (writeonly) alanları anlamak
- Form kontrolleriyle property kullanımı arasında ilişki kurmak
- Gerçek dünyaya uygun, sağlıklı sınıf tasarımı yapmak
🧪 7.3 – Get-Set Yöntemleri: Uygulamalı 5 Örnek
📌 Örnek 1: Get ve Set Bloklarının Temel Kullanımı
🎯 Amaç:
Bir private alan için temel get ve set tanımlaması yapmak.
💻 Kod:
public class Calisan
{
private string ad;
public string Ad
{
get { return ad; }
set { ad = value; }
}
}
📝 Açıklama:
Bu örnek, temel bir kapsülleme sağlar. Değişken doğrudan erişilemez, get ve set bloklarıyla kontrol edilir.
📌 Örnek 2: Get Bloklu (Salt Okunabilir) Özellik
🎯 Amaç:
Sadece okunabilir bir özellik tanımlamak.
💻 Kod:
public class Sistem
{
private string versiyon = "v1.0.3";
public string Versiyon
{
get { return versiyon; }
}
}
📝 Açıklama:
Versiyon bilgisi dışarıdan sadece okunabilir. Kod dışında kullanıcı tarafından değiştirilemez.
📌 Örnek 3: Set Bloklu (Salt Yazılabilir) Özellik
🎯 Amaç:
Yalnızca atama yapılabilen, okunamayan bir alan oluşturmak.
💻 Kod:
public class Kisi
{
private string sifre;
public string Sifre
{
set { sifre = value; }
}
}
📝 Açıklama:
Bu durumda şifre dışarıdan set edilebilir, ancak okunamaz. Güvenlik için ideal bir yapı.
📌 Örnek 4: Set Bloğunda Giriş Kontrolü
🎯 Amaç:
Kullanıcının girdiği veriyi doğrulayıp geçerli değilse varsayılan değer atamak.
💻 Kod:
public class Ogrenci
{
private int yas;
public int Yas
{
get { return yas; }
set
{
if (value >= 5 && value <= 100)
yas = value;
else
yas = 0; // Geçersiz değerler sıfır kabul edilir
}
}
}
📝 Açıklama:
Bu kontrol sayesinde uygulamanın veri bütünlüğü korunur. Uygunsuz değerler engellenir.
📌 Örnek 5: Get İçinde Formatlama İşlemi
🎯 Amaç:
Özellik döndürülürken özel bir formatla geri verilmesini sağlamak.
💻 Kod:
public class Personel
{
private string adSoyad;
public string AdSoyad
{
get { return adSoyad.ToUpper(); }
set { adSoyad = value.Trim(); }
}
}
📝 Açıklama:
Kullanıcının girdiği isim boşluklardan arındırılır ve her okunduğunda büyük harfe çevrilir.
✅ Özet:
Bu örneklerle öğrenciler artık:
- Get ve set bloklarının ne işe yaradığını
- Okuma ve yazma işlemlerinin birbirinden bağımsız kontrol edilebildiğini
- Giriş kontrollerini doğru yere konumlandırmayı
- Veriyi sadece değil, biçimlendirilmiş ve denetlenmiş şekilde sunmayı öğrendiler.