C#中自定义事件
C#语言中有个关键字其中delegate和event专门为C#中事件处理系统提供的
delegate声明定义一种引用类型该类型可用于将方法用特定的签名封装委托实例封装静态方法或实例方法委托大致类似于 C++ 中的函数指针但是委托是类型安全和可靠的
event指定一个事件在C#的类中存在以下成员:域(Fields)属性(Properties)方法(Methods)索引(Indexs)事件(Events)其中事件(Events)成员就是用来声明一个类事件的在类中声明一个事件成员一般采用如下的语法形式public event 委托名 事件名
本程序是UDP通信的UI测试程序负责接收数据报文打算要定义简单的自定义事件首先定义委托然后定义事件类
在文件Delegatecs中定义两个委托:
namespace Communication
{
public delegate void DgOnDataRecvFinished(object senderbool e);//文件接收结束代理
public delegate void DgOnDataRecvStart(object senderbool e);//文件接收结束代理
public delegate void DgOnDataArrived(object senderUdpEventArgs 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;
}
}
}
新事件类和三个委托定义完毕