以下是关于C#事件的基本概念和用法:
1. 定义事件:
// 声明事件的委托
public delegate void MyEventHandler(object sender, EventArgs e);
// 声明包含事件的类
public class MyClass
{
// 定义事件
public event MyEventHandler MyEvent;
// 触发事件的方法
protected virtual void OnMyEvent()
{
MyEvent?.Invoke(this, EventArgs.Empty);
}
// 其他类可以调用这个方法来触发事件
public void DoSomething()
{
// 做一些事情...
// 触发事件
OnMyEvent();
}
}
2. 订阅事件:
public class Subscriber
{
// 订阅事件的方法
public void Subscribe(MyClass myClass)
{
myClass.MyEvent += HandleEvent;
}
// 事件处理方法
private void HandleEvent(object sender, EventArgs e)
{
Console.WriteLine("Event handled by Subscriber");
}
}
3. 使用事件:
class Program
{
static void Main()
{
// 创建实例
MyClass myObject = new MyClass();
// 创建订阅者
Subscriber subscriber = new Subscriber();
// 订阅事件
subscriber.Subscribe(myObject);
// 执行操作,触发事件
myObject.DoSomething();
}
}
在上述例子中,MyClass 中声明了一个事件 MyEvent,订阅者 Subscriber 可以通过 Subscribe 方法订阅该事件。当 MyClass 中的 DoSomething 方法被调用时,会触发事件,然后订阅者的事件处理方法 HandleEvent 将被调用。
通过使用事件,你可以实现类之间的解耦,让发布者和订阅者之间保持相对独立。这有助于实现更灵活、可维护的代码结构。
转载请注明出处:http://www.zyzy.cn/article/detail/14773/C#