首頁  >  文章  >  後端開發  >  C# 事件處理程序

C# 事件處理程序

PHPz
PHPz原創
2024-09-03 15:28:561319瀏覽

C# 程式語言中的事件處理程序負責處理由編碼器程式設計的事件,以便在需要時非同步執行。每種程式語言都有其功能和局限性,而事件處理程序是正確執行程式的重要功能之一。

我們知道發生的任何事件都是一個動作,它是另一個動作的結果,就像一個簡單的點擊按鈕和後面的功能。委託是事件處理程序的重要組成部分,創建時它的目標是事件處理程序方法。

文法:

現在我們已經了解了事件處理程序是什麼,讓我們繼續了解更多。函數或方法的語法是至關重要的部分,事件處理方法的簡單語法如下:

public delegate void SimpleEH(int a, int b);
  • 你一定注意到了 delegate 關鍵字,它是一種特殊類型,純粹代表方法。我們擁有的兩個參數是物件和 EventArgs,它們可能有不同的用途。
  • 上面這個簡單的委託有一個基本操作,即指向事件處理方法,該方法接受兩個整數參數並傳回一個整數。此方法的語法可以在命名空間層級聲明,這將實作一個簡單的規則,即無需在任何嵌套類別中重複它。

EventHandler 在 C# 中如何運作?

我們已經很好地了解了 C# 中的事件處理程序是什麼及其各自的語法。但理解事件處理程序的工作是一個重要的部分,它有助於更好的實現。程序中的每個移動或步驟都是一個事件,由事件處理程序處理。我們有一個事件處理程序方法,並且委託用於指向該方法。這裡的委託可以是這五種類型中的任何類型:類別、介面、結構、枚舉和委託。

我們必須建立一個我們已經透過文法學習的委託實例。我們創建的委託指向事件處理程序方法。  在這裡,我們必須記住,.NET 中的所有 C# 事件基本上都是基於委託的。

基本上,我們必須在事件接收器中定義事件處理程序方法才能回應事件。為了更好地實現,代表事件的委託的簽名必須與我們目前正在處理的事件的方法相符。

實作 C# EventHandler 的範例

以下是提到的範例:

範例#1

我們已經了解了事件處理程序方法、它的語法及其運作方式。現在我們開始實作;在這裡,我們將編寫一個程式來列印版本並執行它。

代碼:

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; }
}

輸出:

C# 事件處理程序

說明:我們只是從導入我們的系統開始。隨後是代表的聲明。我們已經理解了我們在這裡實現的語法。我們有兩個沒有委託的參數,都是整數,a 和 b。然後是我們的類別Program,有main方法。我們有一個簡單的加法器,有一個新實例。我們在程式中進一步創建了一個 Adder 類別。然後我們建立委託實例並呼叫加法器實例進行新增。然後我們簡單地傳遞了兩個值,這裡是 4 和 3。最後,我們有了 print 語句,它將列印出 SampleOutput =,然後將我們傳遞的兩個值相加。

然後我們有公共類別 Adder,其中對我們之前傳遞的值進行新增操作。 Add 函數接受兩個參數並傳回兩者的相加,並將其傳遞給輸出。為了正確的輸出,請參考下面的截圖:

範例#2

繼續,我們將在下一個範例中實作事件處理程序委託方法。

代碼:

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");
}
}

輸出:

C# 事件處理程序

說明:與我們的第一個範例類似,我們使用了一個語句,然後使用了委託和具有 main 方法的類別的聲明。我們已經展示了向清單新增事件的方法實例。然後我們加入兩個事件:Event 和 Handler。為了簡單起見,我們對事件使用了 static 修飾符,這將允許在靜態 Main 方法中直接存取事件。

此外,這裡使用的 += 與算術運算無關。請參閱下面的輸出螢幕截圖:

結論

每個事件都是一個動作,事件處理程序會正確處理該事件。我們為委託創建一個實例並在需要時呼叫它;委託實例指向事件處理程序方法。這些事件在 Windows 窗體框架中廣泛使用,並且是事件處理程序,在執行緒的情況下,我們實作 BackGroundWorker 類型。

以上是C# 事件處理程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 中的列錶框下一篇:C# 中的列錶框