C# 編程語言中的事件處理程序負(fù)責(zé)處理由編碼器編程的事件,以便在需要時異步執(zhí)行。每種編程語言都有其功能和局限性,而事件處理程序是正確執(zhí)行程序的重要功能之一。
我們知道發(fā)生的任何事件都是一個動作,它是另一個動作的結(jié)果,就像一個簡單的點(diǎn)擊按鈕后面的功能。委托是事件處理程序的重要組成部分,創(chuàng)建時它的目標(biāo)是事件處理程序方法。
語法:
現(xiàn)在我們已經(jīng)了解了事件處理程序是什么,讓我們繼續(xù)了解更多信息。函數(shù)或方法的語法是至關(guān)重要的部分,事件處理方法的簡單語法如下:
public delegate void SimpleEH(int a, int b);
- 你一定注意到了 delegate 關(guān)鍵字,它是一種特殊類型,純粹代表方法。我們擁有的兩個參數(shù)是對象和 EventArgs,它們可能有不同的用途。
- 上面這個簡單的委托有一個基本操作,即指向事件處理方法,該方法接受兩個整數(shù)參數(shù)并返回一個整數(shù)。該方法的語法可以在命名空間級別聲明,這將實(shí)現(xiàn)一個簡單的規(guī)則,即不需要在任何嵌套類中重復(fù)它。
EventHandler 在 C# 中如何工作?
我們已經(jīng)很好地了解了 C# 中的事件處理程序是什么及其各自的語法。但理解事件處理程序的工作是一個重要的部分,它有助于更??好的實(shí)現(xiàn)。程序中的每個移動或步驟都是一個事件,由事件處理程序處理。我們有一個事件處理程序方法,并且委托用于指向該方法。這里的委托可以是這五種類型中的任何類型:類、接口、結(jié)構(gòu)、枚舉和委托。
我們必須創(chuàng)建一個我們已經(jīng)通過語法學(xué)習(xí)的委托實(shí)例。我們創(chuàng)建的委托指向事件處理程序方法。? 這里,我們必須記住,.NET 中的所有 C# 事件基本上都是基于委托的。
基本上,我們必須在事件接收器中定義一個事件處理程序方法才能響應(yīng)事件。為了更好地實(shí)現(xiàn),代表事件的委托的簽名必須與我們當(dāng)前正在處理的事件的方法匹配。
實(shí)現(xiàn) C# EventHandler 的示例
以下是提到的示例:
示例#1
我們已經(jīng)了解了事件處理程序方法、它的語法及其工作原理?,F(xiàn)在我們開始實(shí)施;在這里,我們將編寫一個程序來打印版本并執(zhí)行它。
代碼:
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; } }
輸出:
說明:我們只是從導(dǎo)入我們的系統(tǒng)開始。隨后是代表的聲明。我們已經(jīng)理解了我們在這里實(shí)現(xiàn)的語法。我們有兩個沒有委托的參數(shù),都是整數(shù),a 和 b。然后是我們的類Program,有main方法。我們有一個簡單的加法器,帶有一個新實(shí)例。我們在程序中進(jìn)一步創(chuàng)建了一個 Adder 類。然后我們創(chuàng)建委托實(shí)例并調(diào)用加法器實(shí)例進(jìn)行添加。然后我們簡單地傳遞了兩個值,這里是 4 和 3。最后,我們有了 print 語句,它將打印出sampleOutput =,然后將我們傳遞的兩個值相加。
然后我們有公共類 Adder,其中對我們之前傳遞的值進(jìn)行添加操作。 Add 函數(shù)接受兩個參數(shù)并返回兩者的相加,并將其傳遞給輸出。為了正確的輸出,請參考下面的截圖:
示例#2
繼續(xù),我們將在下一個示例中實(shí)現(xiàn)事件處理程序委托方法。
代碼:
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"); } }
輸出:
說明:與我們的第一個示例類似,我們使用了一個語句,然后使用了委托和帶有 main 方法的類的聲明。我們已經(jīng)展示了將新事件添加到列表中的方法實(shí)例。然后我們添加兩個事件:Event 和 Handler。為了簡單起見,我們對事件使用了 static 修飾符,這將允許在靜態(tài) Main 方法中直接訪問事件。
此外,這里使用的 += 與算術(shù)運(yùn)算無關(guān)。輸出結(jié)果請參考下面的截圖:
結(jié)論
每個事件都是一個動作,事件處理程序會正確處理該事件。我們?yōu)槲袆?chuàng)建一個實(shí)例并在需要時調(diào)用它;委托實(shí)例指向事件處理程序方法。這些事件在 Windows 窗體框架中廣泛使用,并且是事件處理程序,在線程的情況下,我們實(shí)現(xiàn) BackGroundWorker 類型。
以上是C# 事件處理程序的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

C# 隨機(jī)數(shù)生成器指南。在這里,我們討論隨機(jī)數(shù)生成器的工作原理、偽隨機(jī)數(shù)和安全數(shù)的概念。

多線程和異步的區(qū)別在于,多線程同時執(zhí)行多個線程,而異步在不阻塞當(dāng)前線程的情況下執(zhí)行操作。多線程用于計算密集型任務(wù),而異步用于用戶交互操作。多線程的優(yōu)勢是提高計算性能,異步的優(yōu)勢是不阻塞 UI 線程。選擇多線程還是異步取決于任務(wù)性質(zhì):計算密集型任務(wù)使用多線程,與外部資源交互且需要保持 UI 響應(yīng)的任務(wù)使用異步。

C#和C 的歷史與演變各有特色,未來前景也不同。1.C 由BjarneStroustrup在1983年發(fā)明,旨在將面向?qū)ο缶幊桃隒語言,其演變歷程包括多次標(biāo)準(zhǔn)化,如C 11引入auto關(guān)鍵字和lambda表達(dá)式,C 20引入概念和協(xié)程,未來將專注于性能和系統(tǒng)級編程。2.C#由微軟在2000年發(fā)布,結(jié)合C 和Java的優(yōu)點(diǎn),其演變注重簡潔性和生產(chǎn)力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注于開發(fā)者的生產(chǎn)力和云計算。

可以采用多種方法修改 XML 格式:使用文本編輯器(如 Notepad )進(jìn)行手工編輯;使用在線或桌面 XML 格式化工具(如 XMLbeautifier)進(jìn)行自動格式化;使用 XML 轉(zhuǎn)換工具(如 XSLT)定義轉(zhuǎn)換規(guī)則;或者使用編程語言(如 Python)進(jìn)行解析和操作。修改時需謹(jǐn)慎,并備份原始文件。
