在C#中,委托是一種類型,用于封裝方法,而事件是基于委托的一種特殊類型。事件允許對象在特定情況下通知其他對象。要定義回調,您需要遵循以下步驟:
MyEventHandler
的方法,它接受兩個整數參數并返回void
。您可以這樣定義委托:public delegate void MyEventHandler(int x, int y);
MyEvent
的事件,并使用前面定義的MyEventHandler
委托:public class MyClass
{
public event MyEventHandler MyEvent;
}
raise
關鍵字(如果C#版本為4.0或更高)或者使用OnMyEvent
方法(如果C#版本為3.0或更低)來實現的。例如:public class MyClass
{
public event MyEventHandler MyEvent;
protected virtual void OnMyEvent(int x, int y)
{
MyEvent?.Invoke(x, y);
}
}
public class MySubscriber
{
public void Subscribe(MyClass myClass)
{
myClass.MyEvent += OnMyEvent;
}
public void Unsubscribe(MyClass myClass)
{
myClass.MyEvent -= OnMyEvent;
}
private void OnMyEvent(int x, int y)
{
Console.WriteLine($"Event triggered with parameters: {x}, {y}");
}
}
public class Program
{
public static void Main()
{
MyClass myClass = new MyClass();
MySubscriber mySubscriber = new MySubscriber();
mySubscriber.Subscribe(myClass);
myClass.OnMyEvent(1, 2); // 這將觸發事件,輸出 "Event triggered with parameters: 1, 2"
mySubscriber.Unsubscribe(myClass);
}
}
這就是如何在C#中使用委托和事件定義回調。