建议151:使用事件访问器替换公开的事件成员变量

事件访问器包含两部分内容:添加访问器和删除访问器。如果涉及公开的事件字段,应该始终使用事件访问器。代码如下所示:

    class SampleClass
{
EventHandlerList events = new EventHandlerList();
public event EventHandler Click
{
add
{
events.AddHandler(null, value);
}
remove
{
events.RemoveHandler(null, value);
}
}
}

使用事件访问器的好处是,提供对赋值更多细粒度的控制。这就好比应该使用属性而不使用字段一样。所以下面的代码没有事件访问器灵活:

    class SampleClass
{
EventHandlerList events = new EventHandlerList();
public event EventHandler Click;
}

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

最新文章

  1. 解决VMware虚拟机宿主机与虚拟机通讯慢
  2. (转)C#为什么要使用Invoke,它和BeginInvoke有什么区别
  3. python学习笔记系列----(五)输入和输出
  4. 查看linux系统,服务,配置文件被修改的时间
  5. Android应用程序(APK)的编译打包过程
  6. 遍历JObject
  7. clock gating and PLL
  8. javascript笔记——jquery.each中使用continue和break的方式
  9. ios蓝牙开发(二)ios连接外设的代码实现
  10. python 生成 pptx 分析报告的工具包:reportgen
  11. CAPTCHA--验证码
  12. 发布-订阅消息系统Kafka简介
  13. window cmd-常用命令
  14. spring util list
  15. MP4v2 基本使用(二)
  16. [图解tensorflow源码] Session::Run()流程图 (单机版)
  17. 洛谷 P1142 轰炸
  18. sqlserver查询最接近的记录
  19. AppCan 之初体验
  20. SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)

热门文章

  1. C++ 栈 (链表实现)
  2. hdu-1052-Tian Ji -- The Horse Racing(经典)
  3. 10.Redis 性能测试
  4. 双 MySQL 启动、停止脚本
  5. LightGBM
  6. PHP - 闭包Closure和lambda function
  7. C# 文本文件的读写
  8. linux: cat more less tail head查看文件内容
  9. c++之带默认形参值的函数
  10. Struts2概述