Delegates, esneği C# programlamasında heyecan verici yapı taşlarıdır ve sana metotları esnek ve dinamik bir şekilde bağlamak için olanak tanır. Bu işlevsellik, çok modüler ve genişletilebilir bir program yazdığında özellikle değerlidir. Bu kılavuzda, Delegates'ın ne olduğunu, nasıl deklare edildiğini ve örnek oluşturulduğunu, ayrıca programlarını daha net ve uyarlanabilir hale getirmek için nasıl etkili bir şekilde kullanabileceğini öğrenmiş olacaksın.

Önemli bilgileri

  • Delegates, çalışma zamanında atanan ve çağrılabilen metotlara referanslardır.
  • Tiplidirler ve parametre geçişine veya geçiş etmemeye olanak tanır.
  • Delegates zincirlenebilir, bu da bir Delegate örneği içinde birden çok metodu birleştirmeyi mümkün kılar.
  • Olay işleyicileri, çeşitli uygulamalarda olaylara yanıt vermek için kullanılan özel Delegates'dır.

Aşama Aşama Kılavuz

1. Delegate'i deklare et

Delegates ile çalışmanın ilk adımı deklara etmektir. Bunu uygun bir yere, genellikle Namespace'in altında ve class'tan önce yerleştirirsin. Kullanım sentaksı: delegate [Dönüş Tipi] [DelegateAdı]([Parametre]). Bizim örneğimizde bu şekilde görünecek:

delegate void MeinDelegate(int nummer);
C# Delegeleri: Esnek yöntemleri bağlamak

2. Delegate'ı örneklendir

Delegate'i deklare ettikten sonra bir örnek oluşturmalısın. Bunu, bir Delegate değişkenine bir metot atayarak yaparsın. Burada atadığın metotların, Delegate'in imzasıyla uyuşması önemlidir. Bizim örneğimizde Delegate'imizi şu şekilde örneklendiriyoruz:

MeinDelegate delegateAusgabe1 = new MeinDelegate(delegateMethode1);
C# Delegeleri: Esnek yöntemleri birbirine bağlama

3. Metodu oluştur

Artık Delegate'ine atadığın metodu tanımlaman gerekiyor. Metodun, Delegate ile aynı imzaya sahip olmalıdır. İşte basit bir örnek:

void delegateMethode1(int zahl) { Console.WriteLine(zahl);
}
C# Delegeleri: Esnek yöntemleri bağlamak

4. Delegate'i çağır

Şu ana kadar Delegate'i deklare ettik ve örneklendirdik, ama henüz çağırmadık. Bunu yapmak için, Delegate'i bir değer ile çağırmalısın.

Programı başlattığında, konsolda 12 değerinin yazdığını göreceksin.

C# Delegeleri: Esnek yöntemleri bağlamak

5. Parametresiz Delegate

Delegates her zaman parametre kabul etmek zorunda değildir. Bir parametre olmadan da bir Delegate tanımlayabilirsin.

C# Delegeleri: Esnek yöntemleri birleştirmek

6. Delegates'ı zincirle

Delegates'ın en ilginç özelliklerinden biri, onları zincirleme yeteneğidir. Bunu += operatörü ile yapabilirsin.

Programı çalıştırdığında, her zincirleme metot sırayla çağrılacak ve sonuçları görüntülenecektir.

C# Delegeleri: Esnek yöntemleri birleştirmek

7. Türler ve Dönüş Değerleri hakkında anlayış

Delegates güçlü bir şekilde tiplenmiştir. Bu, Delegate'in yalnızca belirli bir imzaya sahip metotları atayabileceği anlamına gelir. Ayrıca, metot imzasını uygun şekilde ayarlarsan dönüş değerlerini de kullanabilirsin.

Burada basitçe değer döndüren metotları tanımlayabilirsin.

C# Delegeleri: Esnek yöntemleri birleştirmek

Özet – C# Delegates'a Giriş: Metotları Verimli Bir Şekilde Bağlamak

Delegates, metotları dinamik bir şekilde bağlamanı ve esnek hale getirmeni sağlayan C#'ta değerli bir araçtır. Onları örneklendirme, çağırma ve zincirleme olanağı ile, programlama pratiğinde birçok uygulama olanağı sunar. Delegates'ın tam potansiyelini ortaya çıkarmak için, bunların nasıl çalıştığını anlamak ve projelerinde uygulamak önemlidir.

Sıkça Sorulan Sorular

C#'ta Delegates nedir?Delegates, belirli bir parametre listesi ve isteğe bağlı dönüş değerleri ile metotlara referansları temsil eden türlerdir.

Bir Delegate nasıl deklare edilir?Bir Delegate, ile belirli bir sentaks ile deklare edilir: delegate [Dönüş Tipi] [Delegate Adı]([Parametre]).

Bir Delegate parametre alabilir mi?Evet, bir Delegate parametre alabilir veya parametre olmadan bir Delegate de var olabilir.

Bir Delegate nasıl çağrılır?Bir Delegate, gereksinim duyduğun parametrelerle örneğini kullanarak çağrılır.

Delegates'ı zincirlemek ne demektir?Delegates'ı zincirlemek, bir Delegates ile birden fazla metodu bağlamanı ve bunların birbirini takip etmesini sağlar.