您的位置:首页 > 编程语言 > C#

C#事件演示程序1)——一个最简单的C#事件处理程序

2006-10-04 13:11 746 查看

using System;


using System.Collections.Generic;


using System.Text;




namespace ConsoleApplication13




...{




/**//// <summary>


/// 事件演示程序


/// </summary>


class Program




...{


static void Main(string[] args)




...{


MyEvent myEvent = new MyEvent();




//注册事件(或者说订阅事件)


myEvent.wakeUp += new EventHandler(ShowMessage);




//在外部触发事件


myEvent.OnEvent();




}






/**//// <summary>


/// 事件处理程序(演示)


/// </summary>


/// <param name="sender"></param>


/// <param name="e"></param>


public static void ShowMessage(object sender,EventArgs e)




...{


Console.WriteLine("hello,it's time to wakeup!");


}




}






/**//// <summary>


/// 定义事件的类


/// </summary>


/// <remarks>


/// 在代理的基础上,事件实现了了另一个重要的机制:内部调用外部


/// 不能不佩服微软构思的巧妙,将代理稍一封装,就做成了功能强大的事件机制.


/// 事件最本质上的作用就是: 通知功能.能自动在某个事件触发时通知别的类或程序,


/// 执行一些代码.


/// </remarks>


public class MyEvent




...{




/**//// <summary>


/// 声明事件


/// </summary>


public event EventHandler wakeUp;






/**//// <summary>


/// 触发事件的函数,供外部调用,来触发该对象的事件


/// </summary>


public void OnEvent()




...{


RaiseMyEvent();


}




private void RaiseMyEvent()




...{


if ( wakeUp != null )




...{


//复制一份,避免多线程访问时产生NullReferenceException.在此仅供演示.


EventHandler bkWakeUP = wakeUp;


//调用外部的事件处理程序


bkWakeUP(this, new EventArgs());


}


}






}


}





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐