C# 程式語言中的事件處理程序負責處理由編碼器程式設計的事件,以便在需要時非同步執行。每種程式語言都有其功能和局限性,而事件處理程序是正確執行程式的重要功能之一。
我們知道發生的任何事件都是一個動作,它是另一個動作的結果,就像一個簡單的點擊按鈕和後面的功能。委託是事件處理程序的重要組成部分,創建時它的目標是事件處理程序方法。
文法:
現在我們已經了解了事件處理程序是什麼,讓我們繼續了解更多。函數或方法的語法是至關重要的部分,事件處理方法的簡單語法如下:
public delegate void SimpleEH(int a, int b);
我們已經很好地了解了 C# 中的事件處理程序是什麼及其各自的語法。但理解事件處理程序的工作是一個重要的部分,它有助於更好的實現。程序中的每個移動或步驟都是一個事件,由事件處理程序處理。我們有一個事件處理程序方法,並且委託用於指向該方法。這裡的委託可以是這五種類型中的任何類型:類別、介面、結構、枚舉和委託。
我們必須建立一個我們已經透過文法學習的委託實例。我們創建的委託指向事件處理程序方法。 在這裡,我們必須記住,.NET 中的所有 C# 事件基本上都是基於委託的。
基本上,我們必須在事件接收器中定義事件處理程序方法才能回應事件。為了更好地實現,代表事件的委託的簽名必須與我們目前正在處理的事件的方法相符。
以下是提到的範例:
我們已經了解了事件處理程序方法、它的語法及其運作方式。現在我們開始實作;在這裡,我們將編寫一個程式來列印版本並執行它。
代碼:
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; } }
輸出:
說明:我們只是從導入我們的系統開始。隨後是代表的聲明。我們已經理解了我們在這裡實現的語法。我們有兩個沒有委託的參數,都是整數,a 和 b。然後是我們的類別Program,有main方法。我們有一個簡單的加法器,有一個新實例。我們在程式中進一步創建了一個 Adder 類別。然後我們建立委託實例並呼叫加法器實例進行新增。然後我們簡單地傳遞了兩個值,這裡是 4 和 3。最後,我們有了 print 語句,它將列印出 SampleOutput =,然後將我們傳遞的兩個值相加。
然後我們有公共類別 Adder,其中對我們之前傳遞的值進行新增操作。 Add 函數接受兩個參數並傳回兩者的相加,並將其傳遞給輸出。為了正確的輸出,請參考下面的截圖:
繼續,我們將在下一個範例中實作事件處理程序委託方法。
代碼:
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 方法的類別的聲明。我們已經展示了向清單新增事件的方法實例。然後我們加入兩個事件:Event 和 Handler。為了簡單起見,我們對事件使用了 static 修飾符,這將允許在靜態 Main 方法中直接存取事件。
此外,這裡使用的 += 與算術運算無關。請參閱下面的輸出螢幕截圖:
每個事件都是一個動作,事件處理程序會正確處理該事件。我們為委託創建一個實例並在需要時呼叫它;委託實例指向事件處理程序方法。這些事件在 Windows 窗體框架中廣泛使用,並且是事件處理程序,在執行緒的情況下,我們實作 BackGroundWorker 類型。
以上是C# 事件處理程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!