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

熱AI工具

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

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

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

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版
神級(jí)程式碼編輯軟體(SublimeText3)

熱門話題

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

多線程和異步的區(qū)別在於,多線程同時(shí)執(zhí)行多個(gè)線程,而異步在不阻塞當(dāng)前線程的情況下執(zhí)行操作。多線程用於計(jì)算密集型任務(wù),而異步用於用戶交互操作。多線程的優(yōu)勢是提高計(jì)算性能,異步的優(yōu)勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務(wù)性質(zhì):計(jì)算密集型任務(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)級(jí)編程。 2.C#由微軟在2000年發(fā)布,結(jié)合C 和Java的優(yōu)點(diǎn),其演變注重簡潔性和生產(chǎn)力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注於開發(fā)者的生產(chǎn)力和雲(yún)計(jì)算。

C# 質(zhì)數(shù)指南。這裡我們討論c#中素?cái)?shù)的介紹和範(fàn)例以及程式碼實(shí)作。

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

將 XML 轉(zhuǎn)換為 JSON 的方法包括:使用編程語言(如 Python、Java、C#)編寫腳本或程序進(jìn)行轉(zhuǎn)換;使用在線工具(如 XML 轉(zhuǎn)換為 JSON、Gojko's XML 轉(zhuǎn)換器、XML 在線工具)粘貼或上傳 XML 數(shù)據(jù)並選擇 JSON 格式輸出;使用 XML 到 JSON 轉(zhuǎn)換器(如 Oxygen XML Editor、Stylus Studio、Altova XMLSpy)執(zhí)行轉(zhuǎn)換任務(wù);使用 XSLT 樣式表將 XML 轉(zhuǎn)換為 JSON;使用數(shù)據(jù)集成工具(如 Informatic

C# 多線程編程是一種讓程序同時(shí)執(zhí)行多項(xiàng)任務(wù)的技術(shù),它可以通過提升性能、提高響應(yīng)能力和實(shí)現(xiàn)並行處理來提高程序效率。雖然 Thread 類提供了直接創(chuàng)建線程的方法,但 Task 和 async/await 等高級(jí)工具可以提供更安全的異步操作和更簡潔的代碼結(jié)構(gòu)。多線程編程中常見的難題包括死鎖、競態(tài)條件和資源洩漏,需要仔細(xì)設(shè)計(jì)線程模型和使用適當(dāng)?shù)耐綑C(jī)制來避免這些問題。

有三種將 XML 轉(zhuǎn)換為 Word 的方法:使用 Microsoft Word、使用 XML 轉(zhuǎn)換器或使用編程語言。
