为什么要使用事件而不是委托变量?
2014-01-06 15:34
405 查看
用委托变量会让客户端Main方法里可以直接调用 用事件则提高了封装性
取消注释代码,注释掉委托变量定义,则
class Program { static void Main(string[] args) { Pub p = new Pub(); Sub s = new Sub(); p.NumberChange += new NuberChangeEventHand(s.OnNumberChanged); p.DoSomeThing(); p.NumberChange(100); Console.ReadKey(); } } public delegate void NuberChangeEventHand(int count); public class Pub { private int count; public NuberChangeEventHand NumberChange; //public event NuberChangeEventHand NumberChange; public void DoSomeThing() { if (NumberChange != null) { count++; NumberChange(count); } } } public class Sub { public void OnNumberChanged(int count) { Console.WriteLine("显示:{0}",count); } }
取消注释代码,注释掉委托变量定义,则
相关文章推荐
- 为什么在判断中使用 "值 == 变量" 而不是 "变量 == 值"
- 编写高质量代码改善C#程序的157个建议——建议138:事件和委托变量使用动词或形容词短语命名
- 在配置环境变量时,为什么使用用户变量而不是系统变量?
- 建议138:事件和委托变量使用动词或形容词短语命名
- 委托(二):使用事件来对委托变量进行封装
- 委托(二):使用事件来对委托变量进行封装
- 为什么我推荐事件委托而不是批量绑定
- C#3.0委托之委托变量的使用实例
- VS2003 C#:重写键盘响应事件、动态创建控件、创建线程、在线程中使用委托在界面显示数据
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
- 为什么使用 SLF4J 而不是 Log4J 来做 Java 日志——转载
- [Unity热更新]tolua# & LuaFramework(三):lua使用list与事件委托
- 为什么要优先使用组合而不是继承 .
- 如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件
- 为什么有些Office对象的事件无法使用
- Java基础问题:static方法中为什么不能使用非static的方法或变量
- win7里边使用telnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件?解决
- 为什么要使用SLF4J而不是Log4J
- JDBC为什么要使用PreparedStatement而不是Statemen
- 给元素注册事件时,事件函数中不能使用全局变量