C#自定义事件简单描述

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

C#有很多值得学习的地方,这里我们主要介绍C#自定义事件,包括介绍delegate和event专门为C#中事件处理系统提供的等方面。

C#自定义事件

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

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

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

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

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

  1. namespace Communication  
  2. {  
  3.     
  4. public delegate void DgOnDataRecvFinished(object sender,bool e);//文件接收结束代理。  
  5. public delegate void DgOnDataRecvStart(object sender,bool e);//文件接收结束代理。  
  6. public delegate void DgOnDataArrived(object sender,UdpEventArgs e);//数据抵达代理. 

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

  1. public class UdpEventArgs:EventArgs  
  2. {  
  3. string msg="";  
  4. private byte[] recvdata=null;  
  5.  
  6. public UdpEventArgs(){}  
  7. public string Msg  
  8. {  
  9. set  
  10. {  
  11. msg=value;  
  12. }  
  13. }  
  14. public byte[] RecvData  
  15. {  
  16. set  
  17. {  
  18. recvdata=value;  
  19. }  
  20. get  
  21. {  
  22. return recvdata;  
  23. }  
  24. }  

【编辑推荐】

  1. C#创建表单简单介绍
  2. C#修改DataReader默认行为
  3. C#设置CooperativeLevel概述
  4. C#表单增加控件简单描述
  5. C# EmployeePlug类概述
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-04 09:56:46

C#事件处理自定义事件

2009-09-07 15:31:49

C#支持事件

2009-08-04 12:56:51

C#自定义事件

2009-08-04 12:40:34

c#自定义事件

2009-08-04 13:31:35

C#自定义事件

2009-08-04 13:53:58

C#委托类C#事件

2009-08-04 08:58:01

C#自定义特性

2009-08-31 18:32:01

C# ListBoxE

2009-08-03 13:34:06

自定义C#控件

2009-08-28 17:45:19

C#自定义数据

2009-08-03 13:39:46

C#自定义用户控件

2009-08-12 18:28:09

C#事件处理程序

2009-08-19 10:09:21

C#和C++

2009-09-07 14:33:02

C# switch语句

2009-09-01 18:25:32

C#结构实例

2009-08-21 17:31:58

C#垃圾回收

2009-08-28 09:30:48

C#命名属性

2009-09-02 13:01:11

C#多路广播

2009-09-16 09:01:40

C#多维数组

2009-08-13 17:58:34

C#存储过程
点赞
收藏

51CTO技术栈公众号