Bagikan melalui


Delegasi (Panduan Pemrograman C#)

delegasi adalah tipe yang mewakili referensi ke metode dengan daftar parameter tertentu dan tipe pengembalian. Saat membuat instans delegasi, Anda dapat mengaitkan instans delegasi dengan metode apa pun yang memiliki tanda tangan dan jenis pengembalian yang kompatibel. Anda dapat memanggil metode melalui objek delegasi.

Delegasi digunakan untuk meneruskan metode sebagai argumen ke metode lain. Penanganan peristiwa pada dasarnya adalah metode yang Anda panggil melalui delegasi. Saat Anda membuat metode kustom, kelas seperti kontrol Windows dapat memanggil metode Anda ketika peristiwa tertentu terjadi.

Contoh berikut menunjukkan deklarasi delegasi:

public delegate int PerformCalculation(int x, int y);

Anda dapat menetapkan metode apa pun dari kelas atau struktur yang dapat diakses yang cocok dengan tipe delegasi ke delegasi tersebut. Metode ini dapat berupa metode statis atau instans. Fleksibilitas memungkinkan Anda mengubah panggilan metode secara terprogram, atau menyambungkan kode baru ke kelas yang ada.

Nota

Dalam konteks metode kelebihan beban, tanda tangan metode tidak menyertakan nilai pengembalian. Namun, dalam konteks delegasi, tanda tangan memang menyertakan nilai pengembalian. Dengan kata lain, metode harus memiliki jenis pengembalian yang kompatibel sebagai jenis pengembalian yang dideklarasikan oleh delegasi.

Kemampuan untuk merujuk ke metode sebagai parameter membuat delegasi ideal untuk menentukan metode panggilan balik. Anda dapat menulis metode yang membandingkan dua objek dalam aplikasi Anda. Metode kemudian dapat digunakan dalam fungsi delegasi untuk algoritma pengurutan. Karena kode perbandingan terpisah dari pustaka, metode pengurutan bisa lebih umum.

Penunjuk Fungsi mendukung skenario serupa, di mana Anda memerlukan kontrol lebih besar atas konvensi panggilan. Kode yang terkait dengan delegasi dipanggil dengan menggunakan metode virtual yang ditambahkan ke jenis delegasi. Saat bekerja dengan penunjuk fungsi, Anda dapat menentukan konvensi yang berbeda.

Menjelajahi ciri-ciri delegasi

Delegasi memiliki karakteristik berikut:

  • Delegasi memungkinkan metode diteruskan sebagai parameter.
  • Delegasi dapat digunakan untuk menentukan metode panggilan balik.
  • Delegasi dapat dirangkai bersama, seperti memanggil beberapa metode pada satu event.
  • Metode tidak harus sama persis dengan jenis delegasi. Untuk informasi selengkapnya, lihat Menggunakan Varians pada Delegasi.
  • Ekspresi Lambda adalah cara yang lebih ringkas untuk menulis blok kode sebaris. Ekspresi Lambda (dalam konteks tertentu) dikompilasi menjadi tipe delegasi. Untuk informasi selengkapnya tentang ekspresi lambda, lihat ekspresi lambda.

Untuk informasi selengkapnya tentang delegasi, lihat artikel berikut ini:

Mengakses spesifikasi bahasa C#

Spesifikasi bahasa adalah sumber definitif untuk sintaks dan penggunaan C#. Untuk informasi selengkapnya, lihat Delegasi di C# Spesifikasi Bahasa.