9.3 – this Anahtar Kelimesiyle Yönlendirme


📘 9.3 – this Anahtar Kelimesiyle Yönlendirme


🔹 Açıklama:

C# dilinde this anahtar kelimesi, şu anki sınıfın içindeki nesneyi temsil eder.

Genellikle aşağıdaki amaçlarla kullanılır:

  • Constructor overload sırasında bir diğer constructor’ı çağırmak
  • Sınıf içindeki değişken ile parametre adı çakıştığında ayırt etmek
  • Formdan gelen değerleri sınıfın iç özelliklerine atarken netlik sağlamak
  • Fluent API benzeri zincirli kullanım (this return eden metodlar) yazmak

🔍 Genel Kullanım:

public class Ogrenci
{
    private string ad;

    public Ogrenci(string ad)
    {
        this.ad = ad; // parametre ile sınıf değişkeni çakışınca ayırır
    }
}

📍 Kullanım Alanları:

  • Parametreli yapıcı metotlarda belirsizliği ortadan kaldırmak
  • Nesne içinde kendi kendine atıf yapmak
  • Nesne zincirleme işlemlerini yapılandırmak
  • this(…) ile constructor çağrısı yapmak

🎯 Kazanımlar:

  • this anahtar kelimesinin yapısını ve işlevini öğrenme
  • Kodu okunabilir, düzenli ve hata riski az hâle getirme
  • Overload edilen constructor’ları this(…) ile yönlendirme
  • Parametre-sınıf üyesi çakışmalarında doğru kullanımı yerleştirme

🧪 9.3 – this Anahtar Kelimesiyle Yönlendirme: Uygulamalı 5 Örnek

📌 Örnek 1: Sınıf Özelliği ile Parametre Adı Çakıştığında Ayırma

🎯 Amaç: Parametre ile sınıf değişkeni aynı isimde olduğunda this kullanımı.

public class Ogrenci

{

    private string ad;

    public Ogrenci(string ad)

    {

        this.ad = ad; // burada ‘this.ad’ sınıfa ait olan, ‘ad’ parametre

    }

    public void Yazdir()

    {

        MessageBox.Show($”Ad: {ad}”);

    }

}

📝 Açıklama:

Kod okunabilirliğini ve veri doğru yönlendirmesini sağlar.

📌 Örnek 2: this ile Constructor’dan Constructor Çağırmak

🎯 Amaç: Parametre sayısı az olan constructor’ı genişletilmiş olanla birleştirmek.

public class Ogrenci

{

    public string Ad;

    public string Soyad;

    public Ogrenci(string ad) : this(ad, “Bilinmiyor”) { }

    public Ogrenci(string ad, string soyad)

    {

        this.Ad = ad;

        this.Soyad = soyad;

    }

}

📝 Açıklama:

Kod tekrarını azaltır, tüm yapılar tek bir ana constructor’da kontrol edilir.

📌 Örnek 3: Form’dan Gelen Değerleri this ile Yönlendirme

🎯 Amaç: Parametrelerle gelen verilerin sınıf özelliklerine atanmasında belirsizliği önleme.

public class Urun

{

    public string Ad;

    public double Fiyat;

    public void Ekle(string Ad, double Fiyat)

    {

        this.Ad = Ad;

        this.Fiyat = Fiyat;

    }

}

📝 Açıklama:

Sınıf içinde aynı isimli alan ve parametrelerin ayrımı sağlanır.

📌 Örnek 4: this ile Nesne Referansı Döndürerek Zincirleme Kullanım

🎯 Amaç: Metot zincirlemeyi mümkün kılmak.

public class Hesap

{

    private double bakiye = 0;

    public Hesap ParaYatir(double miktar)

    {

        bakiye += miktar;

        return this;

    }

    public Hesap ParaCek(double miktar)

    {

        bakiye -= miktar;

        return this;

    }

    public void BakiyeGoster()

    {

        MessageBox.Show($”Bakiye: {bakiye} TL”);

    }

}

// Kullanım:

Hesap hesap = new Hesap();

hesap.ParaYatir(100).ParaCek(40).BakiyeGoster();

📝 Açıklama:

Fluent Interface mantığı bu tür “this-return” yapılarla mümkündür.

📌 Örnek 5: this ile Form Elemanlarına Erişim

🎯 Amaç: Form içindeki elemanlara this ile erişimi netleştirmek.

public partial class Form1 : Form

{

    public Form1()

    {

        InitializeComponent();

        this.Text = “Öğrenci Kayıt”; // ‘this’ burada formu temsil eder

    }

    private void this_Load(object sender, EventArgs e)

    {

        this.BackColor = Color.LightBlue;

    }

}

📝 Açıklama:

Form sınıfı içindeki öğelere “bu form” anlamında this ile erişilir.

✅ Özet:

Bu örneklerle öğrenciler:

• this anahtar kelimesinin çok yönlü kullanımını öğrendi

• Yapıcı metodlar arasında yönlendirme yapmayı kavradı

• Fluent interface tekniğine ilk adımı attı

• Kod organizasyonu ve okunabilirliğini geliştirdi

1 Response

  1. Pingback : A'DAN Z'YE NTP - İÇİNDEKİLER - Hasan TANDOĞAN

Leave a Reply