在C#中,事件是一種特殊的委托類型,用于處理在對象之間發生的特定操作。要處理事件,您需要執行以下步驟:
event
關鍵字聲明,后跟事件類型和委托類型。例如:public class MyClass
{
// 定義一個事件,類型為MyEventHandler,委托類型為void
public event MyEventHandler MyEvent;
}
public class MyClass
{
// 定義事件...
// 定義事件處理程序
public void OnMyEvent()
{
MyEvent?.Invoke(this, EventArgs.Empty);
}
}
在這個例子中,我們使用了?.Invoke()
方法來調用事件,這樣可以避免在事件為null時引發空引用異常。
public class MySubscriber
{
public void Subscribe(MyClass myClass)
{
// 將事件處理程序實例分配給事件
myClass.MyEvent += MyHandler;
}
public void Unsubscribe(MyClass myClass)
{
// 從事件中刪除事件處理程序實例
myClass.MyEvent -= MyHandler;
}
// 事件處理程序
private void MyHandler(object sender, EventArgs e)
{
Console.WriteLine("MyEvent has been triggered.");
}
}
MyClass
中定義一個方法來觸發事件。例如:public class MyClass
{
// 定義事件...
public void TriggerMyEvent()
{
OnMyEvent();
}
}
現在,當您創建MyClass
和MySubscriber
的實例并調用TriggerMyEvent()
方法時,將觸發MyEvent
事件,并執行MyHandler
方法。