读书笔记_C#技术内幕_第十一章(委托和事件)(事件部分)
2008-08-21 14:43
621 查看
事件:
在C#中的事件是指确实发生的用户定义的情况。它是初始化程序元素之间通信的动态格式的机制。事件不是从程序的一部分到另外一部分的过程流,而是建立程序之间的连接的方法和在运行过程间的终结操作。
[modifiers] event type name;
下面的例子展示如何声明、注册和触发事件
// Define the delegate
public delegate void MenuHandler();
class MenuItem
{
// Define the event
public event MenuHandler MenuSelection;
public void Fire()
{
MenuSelection();
}
}
// Regist menu selection events
MenuItem item = new MenuItem();
item.MenuSelection += new MenuHandler(item_MenuSelection);
item.MenuSelection += new MenuHandler(item_MenuSelection1);
// Invoke the events
item.Fire();
// Implement the event
void item_MenuSelection1()
{
MessageBox.Show("2");
}
void item_MenuSelection()
{
MessageBox.Show("1");
}
事件可以被多个注册,在触发时,响应事件的实现会被依次执行。如果事件不再需要触发,则可通过如下代码将事件中的方法删除:
item.MenuSelection -= new MenuHandler(item_MenuSelection);
item.MenuSelection -= new MenuHandler(item_MenuSelection1);
在C#中的事件是指确实发生的用户定义的情况。它是初始化程序元素之间通信的动态格式的机制。事件不是从程序的一部分到另外一部分的过程流,而是建立程序之间的连接的方法和在运行过程间的终结操作。
[modifiers] event type name;
下面的例子展示如何声明、注册和触发事件
// Define the delegate
public delegate void MenuHandler();
class MenuItem
{
// Define the event
public event MenuHandler MenuSelection;
public void Fire()
{
MenuSelection();
}
}
// Regist menu selection events
MenuItem item = new MenuItem();
item.MenuSelection += new MenuHandler(item_MenuSelection);
item.MenuSelection += new MenuHandler(item_MenuSelection1);
// Invoke the events
item.Fire();
// Implement the event
void item_MenuSelection1()
{
MessageBox.Show("2");
}
void item_MenuSelection()
{
MessageBox.Show("1");
}
事件可以被多个注册,在触发时,响应事件的实现会被依次执行。如果事件不再需要触发,则可通过如下代码将事件中的方法删除:
item.MenuSelection -= new MenuHandler(item_MenuSelection);
item.MenuSelection -= new MenuHandler(item_MenuSelection1);
相关文章推荐
- 读书笔记_C#技术内幕_第十一章(委托和事件)(委托部分)
- 读书笔记_C#技术内幕_第二十五章(字符串操作)(StringBuilder,字符串格式化)
- 读书笔记_C#技术内幕_第七章(类的使用)
- 读书笔记_C#技术内幕_第十章(处理异常和错误)
- Head.First.C#.中文版.图文皆译.第十一章.事件和委托.翻译完毕.PDF下载
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同.
- [读书笔记]C#学习笔记二: 委托和事件的用法及不同
- 步步为营 C# 技术漫谈 五、事件与委托机制
- 读书笔记_C#技术内幕_第二十六章(C#集合)
- 读书笔记_C#技术内幕_第八章(设计面向对象的程序)
- Head First C# 中文版 图文皆译 第十一章 事件和委托 page513
- 读书笔记之C#委托与事件(上)
- 读书笔记_C#技术内幕_第二十七章(属性)
- Head First C# 中文版 图文皆译 第十一章 事件和委托 page511
- 一起谈.NET技术,C# 委托,事件和Lambda表达式
- 步步为营 C# 技术漫谈 五、事件与委托机制
- 读书笔记_C#技术内幕_第十五章(执行转换)
- 读书笔记_C#技术内幕_第二十八章(反射)
- 读书笔记_C#技术内幕_第二章
- 读书笔记_C#技术内幕_第十二章(使用命名空间组织代码)