.NET自定义事件小结
下面就给出实现的具体步骤---已经在代码注释中标明,以供各位博友抽象出自定义事件的流程。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 自定义事件
{
// http://HdhCmsTestcnblogs测试数据/DebugLZQ
// 自定义事件步骤的示例代码
// 0.定义事件传递的参数
class AlarmEventArgs : EventArgs
{
public int numberOfThief;
public AlarmEventArgs( int n)
{
numberOfThief = n;
}
}
// 事件的发出者
class Dog
{
// 1.声明事件的委托
public delegate void AlarmEventHandler(Object sender, AlarmEventArgs e);
// 2.声明事件
public event AlarmEventHandler Alarm;
// 3.引发事件的函数
public void OnAlarm(AlarmEventArgs e)
{
if ( this .Alarm != null )
{
Console.WriteLine( " The dog is Wangwang... " );
this .Alarm( this , e);
}
}
}
// 事件的订阅者
class Host
{
// 4.订阅事件
public Host(Dog dog)
{
dog.Alarm += new Dog.AlarmEventHandler(HostHandleEvent);
}
// 5.事件处理程序
public void HostHandleEvent(Object sender, AlarmEventArgs e)
{
Console.WriteLine( " Host caught the thief! The sum is " + e.numberOfThief);
}
}
class Program
{
static void Main( string [] args)
{
Console.WriteLine( " Program is running... " );
Dog dog = new Dog();
Host host = new Host(dog);
Console.WriteLine( " Someone is coming... " );
// 6.在合适的时候引发事件
AlarmEventArgs alarmEventArgs = new AlarmEventArgs( 3 );
dog.OnAlarm(alarmEventArgs);
Console.ReadKey();
}
}
}
程序运行结果如下:
例子很简单,我是按照顺序写的,在代码中也有详细的步骤注释,就不多讲了。一般经验来讲,自定义的东西往往是很有用的,而往往也不是人人能够掌握,DebugLZQ总结了一下,也没有什么高端的技术,遇到了自定义事件的这个事情,写下来吧,心里也就不虚了~具体流程可能一千个人一千个哈姆雷特,看个人习惯~
接下来英语口语要注意锻炼,技术要继续学习(重点是加强LINQ,WCF,WPF以及敏捷开发方面的知识),努力提高自己的专业素质,在此期间完成毕业论文。
时间又是很晚了~手指在键盘上流浪至天明吧~多么美丽的夜晚---So Beautiful !
分类: 多线程 , 开发工具、职场杂谈、技术杂记、行业新闻等
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did47683