Delegasi dan Peristiwa
Pelajari cara delegasi dan peristiwa memungkinkan komunikasi antarobjek dalam C#
Delegasi dan Peristiwa adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 5 dari 6. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 6 pelajaran total.
Delegasi dan Peristiwa
Selamat datang di pelajaran berikutnya! Dalam pelajaran ini, Anda akan mempelajari delegasi dan peristiwa dalam C#, tujuannya, serta cara keduanya memungkinkan pemrograman berbasis peristiwa. Mari mulai!

Apa Itu Delegasi?
Sebuah delegate adalah jenis yang merepresentasikan referensi ke sebuah metode. Delegate memungkinkan metode diteruskan sebagai parameter dan dipanggil secara dinamis.
Poin Utama: Delegasi sangat penting untuk menerapkan peristiwa dan fungsi panggilan balik dalam C#.
Mendefinisikan dan Menggunakan Delegasi
Untuk mendefinisikan sebuah delegate, gunakan kata kunci delegate. Contoh:
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!");
}
}
Delegasi Multisiaran
Sebuah delegate dapat menunjuk ke beberapa metode, dan semua metode akan dipanggil sesuai urutan. Contoh:
Tips: Gunakan delegasi multisiaran untuk situasi yang memerlukan beberapa tindakan dilakukan.
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
}
}
Apa Itu Peristiwa?
Sebuah peristiwa adalah mekanisme yang memungkinkan sebuah kelas memberi tahu kelas atau objek lain ketika sesuatu yang menarik terjadi. Peristiwa dibangun di atas delegasi.
Poin Utama: Peristiwa memungkinkan keterkaitan longgar antara penerbit dan pelanggan dalam pemrograman berbasis peristiwa.
Mendefinisikan dan Menggunakan Peristiwa
Untuk mendefinisikan sebuah peristiwa, gunakan kata kunci event dengan jenis delegate. Contoh:
Poin Utama: Peristiwa memungkinkan Anda membangun sistem reaktif dan berbasis peristiwa.
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
}
}
Berhenti Berlangganan dari Peristiwa
Pelanggan dapat berhenti berlangganan dari peristiwa menggunakan -= operator. Example:
Tips: Selalu berhenti berlangganan dari peristiwa untuk menghindari kebocoran memori.
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
}
}
Tantangan Latihan
Buat sebuah delegate CalculationDelegate untuk operasi aritmetika dan sebuah peristiwa OnCalculate. Tulis program yang memicu peristiwa tersebut dan melakukan kalkulasi. Contoh:
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
}
}
Bagus Sekali!
Selamat! Anda telah mempelajari cara menggunakan delegasi dan peristiwa untuk membangun program yang dinamis dan berbasis peristiwa. Pada pelajaran berikutnya, kita akan menjelajahi penggunaan koleksi seperti daftar, kamus, dan antrean. Mari terus menulis kode!

Belajar C# dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 93
- Pelajaran
- 346
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Delegasi dan Peristiwa” gratis?
Ya — teks lengkap “Delegasi dan Peristiwa” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 6 pelajaran total.
Apa yang akan aku pelajari di “Delegasi dan Peristiwa”?
Pelajari cara delegasi dan peristiwa memungkinkan komunikasi antarobjek dalam C# Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 5 dari 6.
Berapa lama pelajaran “Delegasi dan Peristiwa” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pengantar Antarmuka
- Kelas Abstrak
- Anggota dan Metode Statis
- Menjelajahi Enum dan Struct
- Delegasi dan Peristiwa
- Bekerja dengan Koleksi: Daftar, Kamus, dan Antrean