C#中的事件(详解)
2009-08-04 22:10
120 查看
C#中的事件(详解)
[align=center][/align] 想了很久,总算弄明白了C#中的事件是怎么回事。呵呵... 下面是一个最简单的事件例子: class Test { public delegate void EventHandler(); //①申明委托; public event EventHandler Handler; //②定义事件; static void Main() { Test t=new Test(); t.Handler +=new Test.EventHandler(MethodA); //③将事件与委托关联(订阅事件); t.Handler(); //④触发事件; } public static void MethodA() { System.Console.WriteLine("方法A"); } } 注意: 1.委托delegate和事件Event的关系: 委托(delegate)相当于一系列函数的抽象类,这一系列函数要求拥有相同的参数和返回值;而事件(Event)相当于委托的一个实例,只是前面冠有Event关键字。 2.在关联委托和事件时,应该注意: ①委托和事件都应该有应用对象来引用。 ②传入委托中的函数,只写函数名,不带括号。 3.事件的触发,必须要有由具体的引用对象来触发。 将事件和委托和委托方法写在类外的代码为: using System; class Test { static void Main() { A a=new A(); //为了引用Handler而实例化A对象; B b=new B(); //为了引用B对象中的A方法而实例化B对象; a.Handler +=new A.EventHandler(b.MethodA); a.Start(); } } class A { public delegate void EventHandler(); public event EventHandler Handler; public void Start() { if(Handler!=null) { Handler(); } } } class B { public void MethodA() { Console.WriteLine("方法A"); } } |
相关文章推荐
- C# 中的委托和事件(详解)
- C# 中的委托和事件的详解资料
- C#事件与委托详解【精华 多看看】
- 【C#】详解C#事件
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex(ZT)
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- C#事件与委托详解【精华 多看看】
- C#事件与委托详解【精华 多看看】
- c# 事件详解
- c#委托与事件详解
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- C#里自定义事件详解
- C# 代理 事件 详解
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
- C# 中的委托和事件(详解)
- C#事件实例详解
- C# 中的委托和事件详解
- C# 中的委托和事件(详解)
- c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex