C# EventHandler

PHPz
Lepaskan: 2024-09-03 15:28:56
asal
1338 orang telah melayarinya

EventHandler dalam Bahasa Pengaturcaraan C# bertanggungjawab untuk menangani acara, yang diprogramkan oleh pengekod, untuk dilaksanakan apabila dimaksudkan, secara tidak segerak. Setiap bahasa pengaturcaraan mempunyai fungsi dan hadnya, dan pengendali Acara ialah salah satu fungsi hebat untuk pelaksanaan program yang betul.

Kami faham sebarang peristiwa yang berlaku adalah tindakan, yang merupakan hasil daripada tindakan lain, seperti butang klik mudah diikuti dengan fungsi. Perwakilan ialah bahagian penting dalam pengendali acara dan apabila dibuat, ia bertujuan untuk pengendali acara kaedah.

Sintaks:

Sekarang kita telah memahami apa itu pengendali acara, mari kita teruskan untuk mengetahui lebih lanjut mengenainya. Sintaks untuk fungsi atau kaedah adalah bahagian yang penting, dan sintaks mudah untuk kaedah pengendali Acara adalah seperti berikut:

public delegate void SimpleEH(int a, int b);
Salin selepas log masuk
  • Anda pasti perasan kata kunci perwakilan, yang merupakan jenis istimewa dan mewakili kaedah semata-mata. Dan dua hujah yang kita ada ialah objek dan EventArgs, yang mungkin mempunyai tujuan yang berbeza.
  • Perwakilan mudah di atas ini mempunyai operasi asas untuk menunjuk ke arah kaedah pengendalian acara yang menerima dua parameter integer dan juga mengembalikan integer. Sintaks untuk kaedah ini boleh diisytiharkan pada tahap ruang nama, yang akan melaksanakan peraturan mudah bahawa tidak perlu mengulanginya dalam mana-mana kelas bersarang.

Bagaimana EventHandler berfungsi dalam C#?

Kami telah mempelajari dengan baik apakah eventhandler dalam C# dan sintaksnya masing-masing. Tetapi memahami kerja eventhandler adalah bahagian penting, yang membantu dalam pelaksanaan yang lebih baik. Setiap langkah atau langkah dalam program adalah acara, yang dikendalikan oleh pengendali acara. Kami mempunyai kaedah untuk eventhandler, dan perwakilan digunakan untuk menunjuk ke arah kaedah itu. Di sini perwakilan boleh terdiri daripada sesiapa sahaja jenis daripada lima ini: kelas, antara muka, struktur, penghitungan dan perwakilan.

Kami perlu mencipta contoh perwakilan yang telah kami pelajari dengan sintaks. Perwakilan yang kami buat menunjuk ke arah kaedah eventhandler.  Di sini, kita mesti ingat bahawa semua acara C# dalam .NET pada asasnya adalah berdasarkan perwakilan.

Pada asasnya, kita perlu menentukan kaedah pengendali acara dalam penerima acara untuk bertindak balas kepada acara. Untuk pelaksanaan yang lebih baik, tandatangan dengan perwakilan yang mewakili acara mesti sepadan dengan kaedah untuk acara yang kami kendalikan sekarang.

Contoh untuk Melaksanakan C# EventHandler

Di bawah adalah contoh yang dinyatakan:

Contoh #1

Kami telah memahami kaedah eventhandler, sintaksnya, bersama-sama dengan cara kerjanya. Sekarang kita beralih kepada pelaksanaan; di sini, kami akan menulis program untuk mencetak edisi dan melaksanakannya.

Kod:

using System;
public delegate int EHsample(int a, int b);
class Program {
static void Main() {
Adder a = new Adder();
EHsample instanceEHsample = new EHsample(a.Add);
int sampleOutput = instanceEHsample(4, 3);
Console.WriteLine("\n sampleOutput = {0}", sampleOutput);
}
}
public class Adder {
public int Add(int x, int y)
{ return x + y; }
}
Salin selepas log masuk

Output:

C# EventHandler

Penjelasan: Kami hanya bermula dengan mengimport sistem kami. Diikuti dengan pengisytiharan perwakilan. Kami telah pun memahami sintaks yang kami laksanakan di sini. Kami mempunyai dua hujah tanpa perwakilan, kedua-duanya integer, a dan b. Kemudian Program kelas kami, dengan kaedah utama. Kami mempunyai Penambah mudah, dengan kejadian baharu. Kami telah mencipta kelas Penambah lebih jauh dalam program ini. Kemudian kami mempunyai contoh kami untuk perwakilan dibuat dan memanggil contoh penambah kami untuk menambah. Kami kemudian hanya melepasi dua nilai, iaitu 4 dan 3. Akhir sekali, kami mempunyai penyata cetakan kami, yang akan mencetak sampleOutput =, diikuti dengan penambahan dua nilai yang kami lalui.

Kemudian kami mempunyai Penambah kelas awam kami, di mana operasi menambah berlaku untuk nilai yang kami lalui sebelum ini. Fungsi tambah mengambil dua argumen dan mengembalikan penambahan kedua-duanya, dan menghantarnya ke output. Untuk output yang betul, rujuk tangkapan skrin di bawah:

Contoh #2

Seterusnya, kami akan melaksanakan kaedah perwakilan eventhandler dengan contoh kami yang seterusnya.

Kod:

using System;
public delegate void sampleEventHandler();
class Program {
public static event sampleEventHandler _show;
static void Main() {
_show += new sampleEventHandler(Event);
_show += new sampleEventHandler(Handler);
_show.Invoke();
}
static void Event() {
Console.WriteLine("\n Event");
}
static void Handler() {
Console.WriteLine("\n Handler");
}
}
Salin selepas log masuk

Output:

C# EventHandler

Penjelasan: Sama seperti contoh pertama kami, kami telah menggunakan pernyataan, kemudian pengisytiharan kami untuk perwakilan dan kelas dengan kaedah utama. Kami telah menunjukkan contoh kaedah di mana kami menambah acara baharu pada senarai. Kemudian kami menambah dua acara: Acara dan Pengendali. Untuk tujuan kesederhanaan, kami telah menggunakan pengubah suai statik untuk acara tersebut, yang akan membenarkan akses terus kepada acara dalam kaedah Utama statik.

Selain itu, += yang digunakan di sini tiada kaitan dengan operasi aritmetik. Rujuk tangkapan skrin di bawah untuk output:

Kesimpulan

Setiap acara ialah tindakan dan pengendali acara mengendalikan acara itu dengan betul. Kami mencipta contoh untuk perwakilan dan memanggilnya apabila diperlukan; contoh perwakilan menunjuk ke arah kaedah pengendali kejadian. Peristiwa ini digunakan secara meluas dalam Windows Forms Framework dan merupakan pengendali acara, dan sekiranya berlaku threading, kami melaksanakan jenis BackGroundWorker.

Atas ialah kandungan terperinci C# EventHandler. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan