博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#事件以及EventHandler、EventArgs
阅读量:5292 次
发布时间:2019-06-14

本文共 1072 字,大约阅读时间需要 3 分钟。

C#中事件的定义:

  类或者对象可以通过事件向其他类或者对象通知发生的相关事情。发送(或引起)事件的类称之为“发行者”,接收(或处理)事件的类称为“订户”。

事件具有以下特点:

  • 发行者确定时间引发事件,订户确定执行何种操作来响应该事件。
  • 一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。
  • 没有订户的事件永远不会被调用。
  • 事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。
  • 如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。要异步调用事件,请参见使用异步方式调用同步方法。
  • 可以利用事件同步线程。

在.NET Framework类库中,事件是基于EventHandleEventArgs基类的。

例如下面的代码:

delegate void MyDele(string str)  //定义委托

class Program

{

  event MyDele MyEvent;  //定义事件

  static void Main(string[] args)

  {

    Program pro = new Program();

    //订阅方法

    pro.MyEvent += new MyDele(pro.MyMethod);

    pro.MyMethod("参数");

  }

  //定义委托方法

  public void MyMethod(string str)

  {

    Console.WriteLine("方法参数为:" + str);

  }

}

输出结果:

方法参数为:参数1

 

总结:

C#中使用事件的要点

1 首先,要创建委托,格式为:

public delegate void 委托名(object sender,EventArgs e);

注意:委托即C里面的函数指针,在事件中由于要传递事件及触发事件的对象信息,因此参数时固定的。委托名一般的格式是:名字+EventHandle。这样比较规范。

2 然后建立一个事件字段:

public event 委托类型 事件名;

注意:event关键字代表事件,返回类型为委托;

3 再定义一个方法,处理事件

4 最后还要创建触发事件的方法

 

在使用事件时,通常要定义两个方法,一个是和事件定义的委托签名一直的方法

绑定事件的方法很简单,用+=表示添加事件,-=表示删除事件

 

部分引用来自:

转载于:https://www.cnblogs.com/DannyShi/p/4609257.html

你可能感兴趣的文章
第三次作业
查看>>
Codeforces 962 /2错误 相间位置排列 堆模拟 X轴距离最小值 前向星点双连通分量求只存在在一个简单环中的边...
查看>>
Matrix快速幂 模板
查看>>
laravel command调用方法命令
查看>>
20162302 - 20162319 结对编程项目-四则运算(第一周)
查看>>
用python2和python3伪装浏览器爬取网页
查看>>
MySQL开启远程连接权限
查看>>
tomcat7.0.27的bio,nio.apr高级运行模式
查看>>
SAP HANA 三大特点
查看>>
C#预处理器命令
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
ccf 出现次数最多的数
查看>>
单例模式
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
查看>>
最长公共子串问题(LCS)
查看>>
TortoiseSVN is locked in another working copy
查看>>