C#学习笔记19-委托和事件

1.委托

关键字:delegate

使用delegate可以声明一个委托,

delegate void MyDelegate();

委托可以将它理解为一个数据类型,以后就可以用MyDelegate来声明具有这种签名的新委托。

=可以用来初始化,+=用来添加新的方法,-=用于删除。

static void Test1()
{
    Console.WriteLine("Test1");
}

static void Test2()
{
    Console.WriteLine("Test1");
}

private delegate void MyDelegate();
static void Main(string[] args)
{
    MyDelegate de;
    de = Test1;
    de += Test2;
    de -= Test2;
    de();             //调用
 }

2.事件

关键字:event

使用event来声明一个事件

event MyDelegate myEvent;

事件和委托的操作几乎一样,除了声明关键词不一样以外,添加和删除方法的操作都完全一样。

static void Test1()
{
    Console.WriteLine("Test1");
}

static void Test2()
{
    Console.WriteLine("Test1");
}

private delegate void MyDelegate();

private static event MyDelegate myEvent;
static void Main(string[] args)
{
    myEvent = Test1;
    myEvent += Test2;
    myEvent -= Test2;
}

事件可以理解为封装后的委托,但它们之间还是有区别:

(1)声明的关键字不一样;

(2)委托可以在类外直接调用,但是事件只可以在类里调用,类外是不可以调用的。


委托和事件的作用:

        一般我们会把委托和事件用来做事件监测。举个例子,我们制作了一个按钮,为这个按钮注册了一个事件,我们不知道也不用知道当点击了这个按钮后会发生什么事情,我们只需要提供这个事件接口,然后每当按钮被点击并且事件不为空就调用这个事件。之后可能会有其他的人把我们制作的按钮拿到他的工程里去使用。他希望点击按钮过后让他的场景开始生成,他就可以把他写好的方法添加到我们提供的事件接口里,这样就可以实现点击按钮就开始生成场景。之后他又希望按钮点击后音乐也可以响起,这样也可以把音乐响起的方法添加到事件中,按钮点击后在场景生成的同时音乐也会响起。

        这就时委托和事件的妙用,我们不用知道我们的“按钮”到底需要实现什么,我们只需要提供这个事件变化,这样就可以完成事件的监测了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值