Temsilciler ve Olaylar
Temsilcilerin ve olayların C#'ta nesneler arası iletişimi nasıl sağladığını öğrenin
Temsilciler ve Olaylar, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 6 dersinin 5. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 6 dersten oluşur.
Temsilciler ve Olaylar
Temsilciler ve Olaylar
Bir sonraki derse hoş geldiniz! Bu derste C# dilindeki temsilcileri ve olayları, kullanım amaçlarını ve olay odaklı programlamayı nasıl mümkün kıldıklarını öğreneceksiniz. Hadi başlayalım!

Delegate Nedir
Delegate Nedir
Bir delegate, bir yönteme başvuruyu temsil eden bir türdür. Yöntemlerin parametre olarak aktarılmasını ve dinamik olarak çağrılmasını sağlar.
Önemli Nokta: Delegate'ler, C# dilinde olayları ve geri çağırma işlevlerini uygulamak için gereklidir.
Temsilcileri Tanımlama ve Kullanma
Temsilcileri Tanımlama ve Kullanma
Bir temsilci tanımlamak için delegate anahtar sözcüğünü kullanın. Örnek:
using System;
class Program {
// Define a delegate
public delegate void MessageDelegate(string message);
static void DisplayMessage(string message) {
Console.WriteLine(message);
}
static void Main() {
// Create a delegate instance
MessageDelegate msg = DisplayMessage;
// Invoke the delegate
msg("Hello, Delegates!");
}
}
Çoklu Delegate Kullanımı
Çoklu Delegate Kullanımı
Tek bir delegate birden çok yöntemi gösterebilir ve tüm yöntemler sırayla çağrılır. Örnek:
İpucu: Birden çok eylemin gerçekleştirilmesi gereken durumlarda çoklu delegate kullanın.
using System;
class Program {
public delegate void MessageDelegate(string message);
static void ShowMessage(string message) {
Console.WriteLine("Message: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
static void Main() {
MessageDelegate msg = ShowMessage;
msg += LogMessage; // Add another method
msg("Hello, Multicast Delegates!"); // Both methods are invoked
}
}
Olay Nedir
Olay Nedir
Bir olay, ilgi çekici bir durum gerçekleştiğinde bir sınıfın diğer sınıfları veya nesneleri bilgilendirmesini sağlayan bir mekanizmadır. Olaylar, delegate'ler temel alınarak oluşturulur.
Önemli Nokta: Olaylar, olay odaklı programlamada yayıncılar ve aboneler arasında gevşek bağlılık sağlar.
Olayları Tanımlama ve Kullanma
Olayları Tanımlama ve Kullanma
Bir olay tanımlamak için event anahtar sözcüğünü bir delegate türüyle birlikte kullanın. Örnek:
Önemli Nokta: Olaylar, tepkisel ve olay odaklı sistemler oluşturmanıza olanak tanır.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify; // Define an event
public void RaiseEvent(string message) {
Notify?.Invoke(message); // Invoke the event
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe to the event
pub.RaiseEvent("Hello, Events!"); // Raise the event
}
}
Olay Aboneliğini İptal Etme
Olay Aboneliğini İptal Etme
Aboneler, -=` operatörünü kullanarak olay aboneliklerini iptal edebilir. Örnek:
İpucu: Bellek sızıntılarını önlemek için olay aboneliklerini her zaman iptal edin.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify;
public void RaiseEvent(string message) {
Notify?.Invoke(message);
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe
pub.RaiseEvent("First Message");
pub.Notify -= sub.OnNotify; // Unsubscribe
pub.RaiseEvent("Second Message"); // No output, as subscriber is removed
}
}
Alıştırma Görevi
Alıştırma Görevi
Aritmetik işlemler için bir CalculationDelegate temsilcisi ve bir OnCalculate olayı oluşturun. Olayı tetikleyen ve hesaplamalar gerçekleştiren bir program yazın. Örnek:
using System;
class Calculator {
public delegate void CalculationDelegate(double result);
public event CalculationDelegate OnCalculate;
public void Add(double a, double b) {
double result = a + b;
OnCalculate?.Invoke(result);
}
}
class Program {
static void Main() {
Calculator calc = new Calculator();
// Subscribe to the event
calc.OnCalculate += result => Console.WriteLine("Result: " + result);
calc.Add(5, 3); // Outputs: Result: 8
}
}
Harika İş Çıkardınız
Harika İş Çıkardınız
Tebrikler! Dinamik ve olay odaklı programlar oluşturmak için temsilcileri ve olayları kullanmayı öğrendiniz. Bir sonraki derste listeler, sözlükler ve kuyruklar gibi koleksiyonlarla çalışmayı inceleyeceğiz. Kod yazmaya devam edelim!

Sıkça Sorulan Sorular
“Temsilciler ve Olaylar” dersi ücretsiz mi?
Evet — “Temsilciler ve Olaylar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 6 dersten oluşur.
“Temsilciler ve Olaylar” dersinde ne öğreneceğim?
Temsilcilerin ve olayların C#'ta nesneler arası iletişimi nasıl sağladığını öğrenin C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 6 dersinin 5. dersidir.
“Temsilciler ve Olaylar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Arayüzlere Giriş
- Soyut Sınıflar
- Statik Üyeler ve Yöntemler
- Sıralamaları ve Yapıları Keşfetme
- Temsilciler ve Olaylar
- Koleksiyonlarla Çalışma: Listeler, Sözlükler ve Kuyruklar