Acara lwn Perwakilan: Ciri Membezakan dan Garis Panduan Penggunaan
Mengenai pengendalian acara dalam C#, istilah "acara" dan "perwakilan "sering timbul, dan memahami perbezaan mereka dan penggunaan yang sesuai adalah penting. Walaupun acara sering dianggap sebagai gula sintaksis untuk perwakilan, terdapat perbezaan halus yang memainkan peranan penting dalam penerapannya.
Menentukan Acara dan Perwakilan
Perwakilan adalah jenis- petunjuk fungsi selamat yang membenarkan satu kaedah memanggil kaedah lain secara tak segerak. Ia diisytiharkan menggunakan sintaks:
public delegate void EventHandler(object sender, EventArgs e);
Acara ialah pengubah suai yang digunakan pada perwakilan multicast, mengehadkan seruan mereka kepada kelas pengisytiharan. Ia diisytiharkan menggunakan sintaks:
public event EventHandler OnSubmit;
Perbezaan Utama
Penggunaan Pertimbangan
Gunakan Acara Apabila:
Gunakan Perwakilan Apabila:
Contoh Dunia Sebenar
Dalam contoh aplikasi WPF:
private void MyButton_Click(object sender, RoutedEventArgs e) { // Declare and add an event handler Button btn = sender as Button; btn.Click += MyButtonClickHandler; } private void MyButtonClickHandler(object sender, RoutedEventArgs e) { // Event handling logic }
Dalam contoh ini, kaedah MyButton_Click mencipta dan menambah pengendali acara untuk acara Klik butang. Acara Klik diisytiharkan menggunakan pengubah suai acara.
Dalam aplikasi berbilang benang yang kompleks:
public class Worker { public delegate void JobDoneEventHandler(object sender, EventArgs e); public event JobDoneEventHandler JobDone; } public class Main { public void StartWork() { var worker = new Worker(); // Register for event notification worker.JobDone += OnJobDone; // Start the background worker worker.Start(); } private void OnJobDone(object sender, EventArgs e) { // Handle the completed job event } }
Dalam contoh ini, kelas Worker mentakrifkan perwakilan tersuai JobDoneEventHandler dan acara JobDone menggunakan ia. Kelas Utama melanggan acara JobDone dan mencipta urutan untuk memanggil acara apabila pekerja telah menyelesaikan tugasnya.
Kesimpulan
Acara dan perwakilan menawarkan kelebihan yang berbeza dalam senario yang berbeza. Memahami nuansa mereka membolehkan pembangun mereka bentuk aplikasi dipacu peristiwa yang cekap dan boleh diselenggara.
Atas ialah kandungan terperinci Acara lwn Perwakilan dalam C#: Bilakah Anda Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!