C#语言学习:C#数据报编程之测试程序

王朝c#·作者佚名  2008-05-19
宽屏版  字体: |||超大  

C#中自定义事件

C#语言中有77个关键字,其中delegate和event专门为C#中事件处理系统提供的。

delegate声明定义一种引用类型,该类型可用于将方法用特定的签名封装。委托实例封装静态方法或实例方法。委托大致类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。

event指定一个事件。在C#的类中存在以下成员:域(Fields)、属性(Properties)、方法(Methods)、索引(Indexs)、事件(Events),其中事件(Events)成员就是用来声明一个类事件的。在类中声明一个事件成员一般采用如下的语法形式:public event 委托名 事件名。

本程序是UDP通信的UI测试程序,负责接收数据报文,打算要定义简单的自定义事件,首先定义委托,然后定义事件类。

在文件Delegate.cs中定义两个委托:

namespace Communication

{

public delegate void DgOnDataRecvFinished(object sender,bool e);//文件接收结束代理。

public delegate void DgOnDataRecvStart(object sender,bool e);//文件接收结束代理。

public delegate void DgOnDataArrived(object sender,UdpEventArgs e);//数据抵达代理.

自定义事件类UdpEventArgs也位于这个文件中,包括一个消息属性和字节数组.

public class UdpEventArgs:EventArgs

{

string msg="";

private byte[] recvdata=null;

public UdpEventArgs(){}

public string Msg

{

set

{

msg=value;

}

}

public byte[] RecvData

{

set

{

recvdata=value;

}

get

{

return recvdata;

}

}

}

新事件类和三个委托定义完毕.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有