事件
事件(event)基于委托,为委托提供了一个发布/订阅机制,我们可以说事件是一种具有特殊签名的委托。
什么是事件?
事件(Event)是类或对象向其他类或对象通知发生的事情的一种特殊签名的委托.
事件的声明
public event 委托类型 事件名;
事件使用event关键词来声明,他的返回类值是一个委托类型。
通常事件的命名,以名字+Event 作为他的名称,在编码中尽量使用规范命名,增加代码可读性。
为了更加容易理解事件,我们还是以前面的动物的示例来说明,有三只动物,猫(名叫Tom),还有两只老鼠(Jerry和Jack),当猫叫的时候,触发事件(CatShout),然后两只老鼠开始逃跑(MouseRun)。接下来用代码来实现。(设计模式-观察者模式)
using System;
namespace CatCry
{
class Program
{
public delegate void MyDelegate();
//public MyDelegate mydelegate; // 声明了一个委托类型的变量, 作为类的成员
//
public event MyDelegate mydelegate; // 事件的申明只能作为类里面的成员来使用,使用方法和委托一样
//
static void Main(string[] args)
{
Program p = new Program();
p.mydelegate = Test1;
p.mydelegate();
//
Console.ReadKey();
}
static void Test1()
{
Console.WriteLine("test1");
}
}
}