0Pricing
C# Academy · Ders

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!

Temsilciler ve Olaylar — resim 1

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!

Temsilciler ve Olaylar — resim 10

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

  1. Arayüzlere Giriş
  2. Soyut Sınıflar
  3. Statik Üyeler ve Yöntemler
  4. Sıralamaları ve Yapıları Keşfetme
  5. Temsilciler ve Olaylar
  6. Koleksiyonlarla Çalışma: Listeler, Sözlükler ve Kuyruklar
← C# Academy Sayfasına Dön