C#学习3——委托和事件
2008-07-22 23:20
337 查看
最近两天学习了第7章——委托与事件,因为这个知识点我以前也看到,似懂非懂的。所以这一章我花
两天的事件来读。
委托:
C#中的委托是类型安全的函数指针,是一种特殊的对象类型,其特殊之处在于它不包含任何数据,只
包含的是方法的地址。
可以在定义类的地方定义delegate。
delegate必须与它所代表的方法有相同的签名。
可以使用delegate推断来初始化委托,也可以使用匿名方法来定义委托,可以做的好处可以降低代码
的复杂性,但是执行会不太快。匿名方法不能有跳转到外部的语句,外部语句也不能跳转到匿名方法内
。
事件:
在C#中事件是一个已定义的对象,该对象处理通知过程。
事件接收器是指发生某些事情时被通知的任何应用程序、对象和组件。
事件发生器的作用时引发事件。
事件接收器中有一个方法,它负责处理事件。
委托在事件中作为发生器和接收器的中介。
怎么使用事件呢?可以按照创建、引发、接收和处理的步骤来完成。
1.应该有婚介所,即delegate
public delegate void ActionEventHandler(object sender,EventArgs e);
2.富翁委托婚介所征婚,这个过程包含定义了一个事件,以及确定了事件的接收器和事件处理的方法
。
public static event ActionEventHandler Action;
事件的接收器就是该富翁,他对婚介所提供一些自己的信息和对配偶的要求,如果应征者的条件符合
他的要求,就委托中介联系他。
private void _Action(object sender,EventArgs e)
{
if(true)
{
//通知富翁有合适的人选,并把女子的信息(包含在EventArgs中)告诉富翁。
}
else
{
//告诉女子她不合适,但是富翁并不知道有这么个女孩去应征过
}
}
3.富翁提出要求后就会,婚介所就会发布信息。即通过委托注册这个事件。
_.Action += new _.ActionEventHandler(object sender,EventArgs e);(实例化委托)
以上过程都可以说是创建事件。
4.女子联婚介所应征。此过程是引发事件。
女子把自己的信息,比如年龄、长相、学历(即实例化EventArgs)等告诉婚介所。
EventArgs e = new EventArgs();
然后发送事件OnAction(this,e);
5.婚介所接收到女子的信息,此过程是接收,是通过委托接收的。婚介所将this,e传送给事件处理程序(委托匹配的方法)。
6.处理程序根据女子的信息(e)进行选择,并将处理结果通知给女子(this)。
两天的事件来读。
委托:
C#中的委托是类型安全的函数指针,是一种特殊的对象类型,其特殊之处在于它不包含任何数据,只
包含的是方法的地址。
可以在定义类的地方定义delegate。
delegate必须与它所代表的方法有相同的签名。
可以使用delegate推断来初始化委托,也可以使用匿名方法来定义委托,可以做的好处可以降低代码
的复杂性,但是执行会不太快。匿名方法不能有跳转到外部的语句,外部语句也不能跳转到匿名方法内
。
事件:
在C#中事件是一个已定义的对象,该对象处理通知过程。
事件接收器是指发生某些事情时被通知的任何应用程序、对象和组件。
事件发生器的作用时引发事件。
事件接收器中有一个方法,它负责处理事件。
委托在事件中作为发生器和接收器的中介。
怎么使用事件呢?可以按照创建、引发、接收和处理的步骤来完成。
1.应该有婚介所,即delegate
public delegate void ActionEventHandler(object sender,EventArgs e);
2.富翁委托婚介所征婚,这个过程包含定义了一个事件,以及确定了事件的接收器和事件处理的方法
。
public static event ActionEventHandler Action;
事件的接收器就是该富翁,他对婚介所提供一些自己的信息和对配偶的要求,如果应征者的条件符合
他的要求,就委托中介联系他。
private void _Action(object sender,EventArgs e)
{
if(true)
{
//通知富翁有合适的人选,并把女子的信息(包含在EventArgs中)告诉富翁。
}
else
{
//告诉女子她不合适,但是富翁并不知道有这么个女孩去应征过
}
}
3.富翁提出要求后就会,婚介所就会发布信息。即通过委托注册这个事件。
_.Action += new _.ActionEventHandler(object sender,EventArgs e);(实例化委托)
以上过程都可以说是创建事件。
4.女子联婚介所应征。此过程是引发事件。
女子把自己的信息,比如年龄、长相、学历(即实例化EventArgs)等告诉婚介所。
EventArgs e = new EventArgs();
然后发送事件OnAction(this,e);
5.婚介所接收到女子的信息,此过程是接收,是通过委托接收的。婚介所将this,e传送给事件处理程序(委托匹配的方法)。
6.处理程序根据女子的信息(e)进行选择,并将处理结果通知给女子(this)。
相关文章推荐
- C# 中的委托和事件学习总结
- C#学习之初步理解委托、事件、匿名方法和Lambda
- C#学习笔记之三:C#接口与事件委托
- C# 委托 事件 学习 以及 小DEMO
- C#委托,事件最初浅的和最易看懂的学习笔记
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- c#的委托和事件的实例学习
- 学习笔记之---C#中的委托与事件
- C#委托与事件学习笔记
- [Unity&C#&事件委托]对委托事件的学习与实践
- C#事件委托学习(一)
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- C#与.NET4 高级程序设计-----委托、事件 学习笔记
- 【C#学习】delegate(委托) 和 event(事件)
- 我是如何学习设计模式的一:.NET C# 委托定天下,学好委托事件,设计模式精髓可以理解三分之一,怎么说也是三分天下之势了
- [学习]C#里的委托和事件实现Observer
- C# 委托、Lambda表达式和事件——学习总结
- C#深入学习 之 委托和事件
- 一步一步学习C#(五 委托与事件)
- 《C#高级编程》学习笔记------C#中的事件和委托