当前位置: 首页 > news >正文

C#事件和委托的基础知识模型

这里设计了一个较为完整且简单的事件模型,帮助初学者了解c#的事件基本概念和逻辑。

using System; namespace ConsoleApplication3 { class Program { //一个较为完整的委托-事件 模型应用 //by jinjazz //http://blog.csdn.net/jinjazz //模型表达 //Test对象执行DoTest方法,回调onTest事件,通过参数控制输出 static void Main(string[] args) { Test t1 = new Test(); t1.Name = "t1"; t1.onTest += new Test.dTest(t_onTest); Test t2 = new Test(); t2.Name = "t2"; t2.onTest += new Test.dTest(t_onTest); t1.DoTest("aaaa"); t2.DoTest("bbbb"); Console.Read(); } static void t_onTest(object sender, Test.testEventArgs args) { Test t = sender as Test; if(t.Name=="t1") args.Cancled = true; } } class Test { //委托参数 public class testEventArgs { public bool Cancled=false; } //委托 public delegate void dTest(object sender, testEventArgs args); //事件 public event dTest onTest; //函数 public void DoTest(string s) { if (this.onTest != null) { //参数判断 testEventArgs arg = new testEventArgs(); this.onTest(this, arg); if (arg.Cancled == true) { return; } } Console.WriteLine(s); } //成员变量 或 属性 public string Name = string.Empty; } }

相关文章:

  • 异步发送HTTP请求
  • Flex开发流程设计器的经验之谈(2)
  • html5 涂鸦板
  • [IE编程] IE中使网页元素进入编辑模式
  • linux命令练习 笔记
  • [IE技巧] IE 中打开Office文件的设置
  • 配置系统未能初始化 错误的解决方案
  • [IE编程] IE中对网页进行截图的编程接口
  • c# 反射 遍历实体的所有字段,ObjectDumper类实现
  • Flex开发流程设计器的经验之谈(3)
  • 飞信分布式存储的结构
  • 使用Zoundry进行测试了下!
  • 使用HTML5制作游戏
  • [Web开发] IE 所有版本打包下载,网页兼容测试必备
  • c# LazyQueueT实现
  • 2019.2.20 c++ 知识梳理
  • Create React App 使用
  • CSS居中完全指南——构建CSS居中决策树
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ECMAScript入门(七)--Module语法
  • js面向对象
  • mockjs让前端开发独立于后端
  • oldjun 检测网站的经验
  • python_bomb----数据类型总结
  • react-native 安卓真机环境搭建
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SpringCloud集成分布式事务LCN (一)
  • 解析带emoji和链接的聊天系统消息
  • 区块链共识机制优缺点对比都是什么
  • 深度解析利用ES6进行Promise封装总结
  • 实现菜单下拉伸展折叠效果demo
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 我们雇佣了一只大猴子...
  • #define用法
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (1)bark-ml
  • (2)(2.10) LTM telemetry
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (2022 CVPR) Unbiased Teacher v2
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (翻译)terry crowley: 写给程序员
  • (一)UDP基本编程步骤
  • (转)Windows2003安全设置/维护
  • (转)大道至简,职场上做人做事做管理
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET 依赖注入和配置系统
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET中winform传递参数至Url并获得返回值或文件
  • /usr/bin/env: node: No such file or directory
  • @NestedConfigurationProperty 注解用法
  • @selector(..)警告提示
  • @TableLogic注解说明,以及对增删改查的影响
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [20180129]bash显示path环境变量.txt
  • [4.9福建四校联考]