Delegate adalah tipe yang merepresentasikan method, dan events dibangun di atasnya: dua fondasi untuk kode yang fleksibel seperti callback, handler, dan notifikasi antar objek. Section ini membahas keduanya dari dasar hingga pola publisher-subscriber yang aman dari kebocoran memori.

# Delegate Dasar

Pelajari delegate sebagai tipe yang merepresentasikan method sehingga method dapat disimpan ke variabel, dikirim, dan dipanggil lewat nama variabel.

Buka →
# Action, Func, dan Predicate

Kenali tiga tipe delegate generik bawaan .NET: Action untuk method tanpa return, Func untuk method dengan return, dan Predicate untuk uji syarat.

Buka →
# Multicast Delegate

Gunakan operator += dan -= untuk menumpuk banyak method dalam satu delegate sehingga satu pemanggilan menjalankan seluruh daftar secara berurutan.

Buka →
# Anonymous Method

Tulis delegate inline dengan keyword delegate tanpa mendeklarasikan method terpisah untuk logika kecil yang hanya dipakai satu kali.

Buka →
# Lambda Expression

Padatkan anonymous method menjadi lambda expression dengan operator => dan biarkan compiler menyimpulkan tipe parameternya.

Buka →
# Event Dasar

Pelajari keyword event yang membungkus delegate dengan aturan akses sehingga kode luar hanya dapat mendaftar dan melepas handler.

Buka →
# Event Publisher dan Subscriber

Terapkan pola publisher-subscriber: satu class menerbitkan event, modul lain berlangganan, dan publisher tidak perlu mengenal subscriber.

Buka →
# EventHandler

Ikuti konvensi .NET dengan EventHandler dan EventHandler<TEventArgs> beserta class EventArgs untuk membawa data event secara terstruktur.

Buka →
# Custom Event Accessors

Kendalikan perilaku pendaftaran handler dengan accessor add dan remove yang menulis sendiri backing field event.

Buka →
# Event Lifecycle

Ikuti empat tahap siklus hidup event, dari deklarasi, langganan, pemicuan, hingga pelepasan handler.

Buka →
# Event Memory Leaks

Lihat bagaimana publisher memegang referensi subscriber dan cegah memory leak dengan unsubscribe lewat operator -= atau pola IDisposable.

Buka →
# Delegates vs Interfaces

Bandingkan delegate dan interface sebagai dua cara menukar perilaku saat runtime, beserta panduan memilih di antara keduanya.

Buka →