概念
事件是类在发生其关注的事情时用来提供通知的一种方式。
类或对象可以通过事件向其他类或对象通知发生的相关事情。
事件发行者(Publisher):一个事件的发行者,也称为发送者(Sender)。其实就是个对象,这个对象会自行维护本身的状态信息,当本身状态信息变动时,便触发一个事件,并通知所有的事件订阅者。
事件订阅者(Subscriber):对事件感兴趣的对象,也称为接收者(Receiver),可以注册感兴趣的事件,在事件发行者触发一个事件后,会自动执行这段代码。
声明事件
必须先声明该事件的委托,声明事件本身用event关键字。
语法格式:访问修饰符 event 委托标识符 事件标识符;
代码示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test_CSharp
{
class Program
{
static void Main(string[] args)
{
//类的实例
Class1 class1 = new Class1();
Class2 class2 = new Class2();
Class3 class3 = new Class3();
//添加事件
class1.MyEvent += class2.FunctionB;
class1.MyEvent += class3.FunctionC;
//调用方法
class1.FunctionA();
Console.ReadKey();
}
}
class Class1
{
public delegate void myEventHandle();//声明委托
public event myEventHandle MyEvent;//声明事件
public void FunctionA()
{
Console.WriteLine('A');
if (MyEvent!=null)
{
MyEvent();//调用事件
}
}
}
class Class2
{
public void FunctionB()
{
Console.WriteLine('B');
}
}
class Class3
{
public void FunctionC()
{
Console.WriteLine('C');
}
}
}