Pemahaman mendalam tentang acara dan pengendali acara dalam C#
Dalam dunia pengaturcaraan, konsep acara dan pengendali acara adalah penting, terutamanya apabila mencipta antara muka pengguna interaktif. Tetapi apakah sebenarnya pengendali acara, dan mengapa ia perlu?
Acara pada asasnya ialah pemberitahuan atau isyarat yang dijana apabila keadaan atau tindakan tertentu berlaku dalam aplikasi. Untuk bertindak balas kepada peristiwa ini, kami memerlukan pengendali acara, iaitu kaedah yang mentakrifkan tindakan yang perlu dilakukan apabila peristiwa itu berlaku.
Untuk memahami pengendali acara, anda mesti menguasai konsep delegasi dalam C#. Perwakilan ialah rujukan kepada kaedah dengan tandatangan atau bentuk tertentu (jenis pemulangan dan parameter input). Dalam erti kata lain, perwakilan bertindak sebagai penunjuk kepada kaedah, membolehkan ia diluluskan sebagai nilai.
Acara bergantung pada perwakilan untuk menentukan jenis kaedah yang boleh dilaksanakan apabila acara dibangkitkan. Dengan melanggan acara, anda membuat senarai rujukan perwakilan yang menunjuk kepada kaedah yang harus dipanggil apabila acara itu berlaku. Ini membolehkan berbilang pengendali acara untuk bertindak balas kepada acara yang sama.
Pengendali acara lalai, seperti EventHandler, mentakrifkan tandatangan kaedah tertentu yang menerima objek dan EventArgs sebagai input. Apabila anda mengisytiharkan acara, anda menentukan jenis perwakilan, yang menentukan bentuk kaedah yang boleh dipanggil.
Berikut ialah contoh pelaksanaan pengendali acara:
<code class="language-csharp">// 委托定义 public delegate void MyEventHandler(string foo); // 事件声明 public event MyEventHandler SomethingHappened; // 事件处理程序实现 void HandleSomethingHappened(string foo) { // 执行所需操作 } // 订阅事件 myObj.SomethingHappened += new MyEventHandler(HandleSomethingHappened); // 触发事件 SomethingHappened("bar");</code>
Dalam contoh ini, SomethingHappened ialah acara yang boleh memanggil sebarang kaedah yang mematuhi perwakilan MyEventHandler. Apabila anda melanggan pengendali acara, rujukan perwakilan kepada kaedah itu ditambahkan pada senarai dalaman pengendali acara. Apabila acara dibangkitkan, senarai ini diulang dan kaedah yang sepadan bagi setiap perwakilan dilaksanakan dengan parameter yang ditentukan.
Atas ialah kandungan terperinci Apakah Pengendali Acara dalam C# dan Mengapa Ia Perlu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!