C#事件
来源:互联网 发布:苏州爱知科技福利待遇 编辑:程序博客网 时间:2024/06/08 16:36
/// <summary> /// 自定义类派 /// </summary> class IncrementerEventArgs : EventArgs { public int IterationCount { get; set; } } /// <summary> /// 发布者 /// </summary> class Incrementer { //使用自定义类的泛型委托,也可以声明static静态的 //CountedADozen事件名称 public event EventHandler<IncrementerEventArgs> CountedADozen; public void DoCount() { //自定义类对象 IncrementerEventArgs args = new IncrementerEventArgs(); for (int i = 1; i < 100; i++) { if (i % 12 == 0 && CountedADozen != null) { args.IterationCount = i; //触发事件时使用EventHandler的参数 CountedADozen(this, args); } } } } /// <summary> /// 订阅者 /// </summary> class Dozens { public int DozensCount { get; private set; } public Dozens(Incrementer incrementer) { DozensCount = 0; //订阅事件 incrementer.CountedADozen += IncrementerDozensCount; } //事件处理程序, /* 不管参数使用的实际类型是什么,object类和EventArgs总是基类,这样evenethandler就能提供一个对所有事件和事件处理器的通用签名,只允许有两个参数,而不是各自都有不同的签名 */ private void IncrementerDozensCount(object sender, EventArgs e) { DozensCount++; } } class Program { static void Main(string[] args) { Incrementer inc = new Incrementer(); Dozens doz = new Dozens(inc); inc.DoCount(); Console.WriteLine(doz.DozensCount); Console.ReadKey(); } }
阅读全文
0 0
- c#事件
- c#事件
- C#事件
- c#事件
- C#事件
- C#事件
- c#事件
- C#事件
- c#事件
- C#事件
- c#事件
- C#事件
- c# 事件
- C#事件
- C#事件
- C# 事件
- C#事件
- c# 事件
- Spark组件介绍
- 悬镜安全丨企业应急响应浅析,遇到网络攻击怎么办?
- 最短路径
- 20171023memo
- java加载tensorflow训练好的模型部署成service
- C#事件
- imresize
- JAVA面向对象练习02
- Qt的setMouseTracking使用
- 二叉树中和为某一值的路径
- 「游戏引擎Mojoc」(3)C面向对象编程
- Scientific Toolworks Understand 4.0.909 Win32_64 2CD
- JVM类加载机制(类加载过程和类加载器)
- js 实现ReplaceAll(包含加号、减号的处理)