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

c#事件学习

事件概念

事件是基于委托的存在
事件是委托的安全包裹
让委托的使用更具有安全性
事件 是一种特殊的变量类型

事件的使用

申明语法:
访问修饰符 event 委托类型 事件名;
事件的使用:
1.事件是作为 成员变量存在于类中
2.委托怎么用 事件就怎么用
事件相对于委托的区别:
1.不能在类外部 赋值
2.不能再类外部 调用
注意:
它只能作为成员存在于类和接口以及结构体中

class Test { //委托成员变量 用于存储 函数的 public Action myFun; //事件成员变量 用于存储 函数的 public event Action myEvent; public Test() { //事件的使用和委托 一模一样 只是有些 细微的区别 myFun = TestFun; myFun += TestFun; myFun -= TestFun; myFun(); myFun.Invoke(); myFun = null; myEvent = TestFun; myEvent += TestFun; myEvent -= TestFun; myEvent(); myEvent.Invoke(); myEvent = null; } public void DoEvent() { if(myEvent != null) { myEvent(); } } public void TestFun() { Console.WriteLine("123"); } }

委托和事件的区别

1.事件不能再外部使用赋值=符号,只能使用+ - 委托 哪里都能用
2.事件 不能再外部执行 委托哪里都能执行
3.事件 不能作为 函数中的临时变量的 委托可以

Test t = new Test(); //委托可以在外部赋值 t.myFun = null; t.myFun = TestFun; t.myFun = t.myFun + TestFun; t.myFun += TestFun; //事件是不能再外部赋值的 //t.myEvent = null; //t.myEvent = TestFun; //虽然不能直接赋值 但是可以 加减 去添加移除记录的函数 t.myEvent += TestFun; t.myEvent -= TestFun; //委托是可以在外部调用的 t.myFun(); t.myFun.Invoke(); //事件不能再外部调用 //t.myEvent(); //只能在类的内部去封装 调用 t.DoEvent(); Action a = TestFun; //事件 是不能作为临时变量在函数中使用的 //event Action ae = TestFun; } static void TestFun() { }

为什么有事件

防止外部随意置空委托
2.防止外部随意调用委托
3.事件相当于对委托进行了一次封装 让其更加安全

http://www.jsqmd.com/news/634868/

相关文章:

  • 电车为何坚持反人类设计?营销噱头,拍脑袋设计,以及赚钱!
  • 2026年羊奶粉品牌测评:陕西标杆美力源,秦岭奶源,品质服务全国 - 深度智识库
  • RetinaJS测试驱动开发:使用Jest编写高质量单元测试的终极指南
  • OpCore Simplify终极教程:5步快速搭建完美黑苹果系统
  • 终极指南:如何实现20ms超低延迟的安卓游戏串流体验
  • Rust 异步函数调用栈分析
  • 终极指南:VBot与Swoole高性能集成,打造企业级微信机器人服务
  • 终极 Vue.draggable.next 迁移指南:从 Vue 2 到 Vue 3 的无缝升级方案
  • Spring Boot单元测试里的事务陷阱:为什么我的数据插不进去?
  • 别再用笨方法点灯了!手把手教你用C51+Keil写一个可复用的LED驱动模块
  • HarmonyOS 音频设备智能切换:打造无缝听觉体验的 App 设计
  • c#匿名函数
  • 终极VSCode浏览器预览教程:从安装到调试的完整指南
  • ChanlunX缠论插件:3分钟掌握专业级K线分析,告别复杂缠论学习曲线!
  • macOS光标个性化终极指南:用Mousecape打破系统限制的完整方案
  • 2026年吉林市黄金回收应用白皮书报价剖析 - 资讯焦点
  • 三菱PLC网口通讯避坑指南:MX Component连接上位机常见问题与解决方案
  • 终极Gravity部署与发布指南:跨平台编译的完整解决方案
  • Redis持久化:从AOF到RDB,如何实现数据不丢失?犊
  • Ever Gauzy:开源ERP/CRM/HRM一体化平台,中小企业数字化转型的最佳选择
  • ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现再
  • 如何用Text2Image将文字描述变成视觉图像:从原理到实战指南
  • 1000面值京东领货码回收攻略,目前能收哪些类型 - 淘淘收小程序
  • 如何快速掌握Buzz:终极离线语音转文字工具完整指南
  • Java面试必备:ViT图像分类模型原理深度解析
  • 2026洛阳江浙菜宴请完全指南:诱江南官方联系方式+主流品牌深度横评+避坑清单 - 精选优质企业推荐榜
  • 终极指南:MediaCMS无缝集成第三方系统——SAML认证与API对接全攻略
  • 终极Moco性能优化与部署指南:生产环境中的最佳配置方案
  • 跨平台文件共享终极方案:3步实现Mac对NTFS存储设备的完全读写支持
  • 终极ViPER4Windows音频补丁工具:快速解决Windows 10/11兼容性问题