在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#中使用委托和事件定义回调。