Delegeler (Delegates) ve Olaylar (Events): Metotları Referans Olarak Saklama, Olay Tabanlı Programlama
- Delegeler (Delegates): bir metot grubunu temsil eden türlerdir. Metotları referans olarak saklamak için kullanılır. delegate anahtar kelimesiyle tanımlanır.
C#
public delegate void MyDelegate(string mesaj); // Delegate tanımı
public class MesajGonderici
{
public void GosterMesaj(string mesaj)
{
Console.WriteLine("Mesaj: " + mesaj);
}
}
// Kullanım:
MesajGonderici gonderici = new MesajGonderici();
MyDelegate delegateObjesi = new MyDelegate(gonderici.GosterMesaj); // Metot referansı saklama
delegateObjesi("Merhaba Dünya!"); // Delegate aracılığıyla metot çağrılırOlaylar (Events): bir nesnenin durumunun değiştiğini bildirmek için kullanılır. Olay tabanlı programlamayı destekler.
C#
public class Buton
{
public event EventHandler Tiklama; // Olay tanımı
public void Tıkla()
{
// ... butonun tıklama mantığı ...
if (Tiklama != null) // Olay dinleyicisi varsa
{
Tiklama(this, EventArgs.Empty); // Olayı tetikle
}
}
}
// Kullanım:
Buton buton = new Buton();
buton.Tiklama += (sender, e) => Console.WriteLine("Butona tıklandı!"); // Olay dinleyicisi eklemeGeneric’ler (Generics): Tür Güvenli Koleksiyonlar Oluşturma, T ile Tür Parametreleri
Generic’ler (Generics), farklı veri türleriyle çalışabilen sınıflar, metotlar ve arayüzler oluşturmak için kullanılır. T ile tür parametreleri belirtilir.
Kullanım Alanları: Tür güvenli koleksiyonlar oluşturmak, kod tekrarını önlemek ve performans artırmak için kullanılır.
C#
public class Kutu<T> // Generic sınıf tanımı
{
public T Icerik { get; set; }
public void Yazdir()
{
Console.WriteLine("İçerik: " + Icerik);
}
}
// Kullanım:
Kutu<int> intKutu = new Kutu<int>(); // int türünde kutu oluşturma
intKutu.Icerik = 10;
intKutu.Yazdir();
Kutu<string> stringKutu = new Kutu<string>(); // string türünde kutu oluşturma
stringKutu.Icerik = "Merhaba";
stringKutu.Yazdir();Kaynak: https://learn.microsoft.com/tr-tr/dotnet/csharp/tour-of-csharp/tutorials/