C#学习笔记19-委托和事件
2017-10-02 20:56
483 查看
1.委托
关键字:delegate
使用delegate可以声明一个委托,
delegate void MyDelegate();
委托可以将它理解为一个数据类型,以后就可以用MyDelegate来声明具有这种签名的新委托。
=可以用来初始化,+=用来添加新的方法,-=用于删除。
2.事件
关键字:event
使用event来声明一个事件
event MyDelegate myEvent;
事件和委托的操作几乎一样,除了声明关键词不一样以外,添加和删除方法的操作都完全一样。
事件可以理解为封装后的委托,但它们之间还是有区别:
(1)声明的关键字不一样;
(2)委托可以在类外直接调用,但是事件只可以在类里调用,类外是不可以调用的。
委托和事件的作用:
一般我们会把委托和事件用来做事件监测。举个例子,我们制作了一个按钮,为这个按钮注册了一个事件,我们不知道也不用知道当点击了这个按钮后会发生什么事情,我们只需要提供这个事件接口,然后每当按钮被点击并且事件不为空就调用这个事件。之后可能会有其他的人把我们制作的按钮拿到他的工程里去使用。他希望点击按钮过后让他的场景开始生成,他就可以把他写好的方法添加到我们提供的事件接口里,这样就可以实现点击按钮就开始生成场景。之后他又希望按钮点击后音乐也可以响起,这样也可以把音乐响起的方法添加到事件中,按钮点击后在场景生成的同时音乐也会响起。
这就时委托和事件的妙用,我们不用知道我们的“按钮”到底需要实现什么,我们只需要提供这个事件变化,这样就可以完成事件的监测了。
关键字: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)委托可以在类外直接调用,但是事件只可以在类里调用,类外是不可以调用的。
委托和事件的作用:
一般我们会把委托和事件用来做事件监测。举个例子,我们制作了一个按钮,为这个按钮注册了一个事件,我们不知道也不用知道当点击了这个按钮后会发生什么事情,我们只需要提供这个事件接口,然后每当按钮被点击并且事件不为空就调用这个事件。之后可能会有其他的人把我们制作的按钮拿到他的工程里去使用。他希望点击按钮过后让他的场景开始生成,他就可以把他写好的方法添加到我们提供的事件接口里,这样就可以实现点击按钮就开始生成场景。之后他又希望按钮点击后音乐也可以响起,这样也可以把音乐响起的方法添加到事件中,按钮点击后在场景生成的同时音乐也会响起。
这就时委托和事件的妙用,我们不用知道我们的“按钮”到底需要实现什么,我们只需要提供这个事件变化,这样就可以完成事件的监测了。
相关文章推荐
- 精通C#学习笔记之事件(一)使用委托的弊端
- C#学习笔记--详解委托,事件与回调函数
- C#学习笔记8——C# 中的委托和事件
- 《C#高级编程》学习笔记------C#中的事件和委托
- 学习笔记之---C#中的委托与事件
- C#中的委托、事件学习笔记
- C#与.NET4 高级程序设计-----委托、事件 学习笔记
- 学习笔记之---C#中的委托与事件
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- C#事件 委托 学习笔记
- [学习笔记]c#中的委托、事件、Func、Predicate、Observer设计模式以及其他
- C#委托,事件最初浅的和最易看懂的学习笔记
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同
- 《C#高级编程》学习笔记------C#中的委托和事件(续)
- [C#]C#学习笔记-委托,事件
- C#学习笔记 委托和事件
- 【unity3d-C#学习笔记】C#中的委托和事件
- C#学习笔记之三:C#接口与事件委托
- C#委托与事件学习笔记
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.