.NET简谈组件程序设计之(delegate与event关系)
来源:深度训练(DotNet专场) 责任编辑:栏目编辑 发表时间:2013-07-02 04:31 点击:次
本人最近一段时间在学习关于.NET组件编程方面的技术,在学习过程中确实有很多好的东西需要与大家分享。[王清培版权所有,转载请给出署名]
关于什么叫组件编程,其实就是利用.NET来开发基于组件模型的程序,面向组件编程而非面向对象编程,这是一个高度,没有很长时间的学习与磨练
是体会不到这个感觉的。我们现在的开发思想应该是以面向对象为主的,但是如何提升这个高度,只有慢慢的学习了。
其实面向组件编程包含了面向对象编程思想,将一组功能独立的封装起来供以后重复使用,但是在开发组件的过程中需要使用到面向对象的思想来构
造组件,这两个概念不矛盾,面向对象思想是具体实现,而面向组件思想应该说是站在一个产品或者说是一个框架的高度来宏观的形容。
这些技术哲学我们就不讨论了,学点实际的东西比较现实。我们只需要知道,面向对象编程是代码重用,而面向组件编程是实现的重用。而不管是面
向对象也好还是面向组件也好,归根到底都得用良好的代码来实现。只要我们在开始编码的时候,在脑海里注入这些需要考虑的想法后就可以了。
这篇文章我们先来扫除组件编程中经常用到的委托与事件的一些技术疑惑。在没有学习组件编程之前,我也是不能理解delegate与event的关系和两
者之间到用意何在。但是在最近的学习过程中以有了大概的了解,并且决定写出学习到的技术与大家分享。[王清培版权所有,转载请给出署名]
delegate在C#中表示委托的概念,而event表示事件的概念,但是这两者之间为什么需要结合起来使用,不用event也能很好的实现面向对象中的事件
的思想和功能,通过多播委托一样可以调用所有订阅者。
其实要说为什么需要用event来使用事件的机制,一句话就概括了,但是我这里先不说,说了就没啥意思了,请继续看。
我们先来看点代码:
1:
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace EventDemo
- {
- /// <summary>
- /// 句柄移除委托
- /// </summary>
- /// <param name="handle">提示信息</param>
- public delegate void MoveHandler(string handle);
- /// <summary>
- /// 句柄对象
- /// </summary>
- public class ObjectHandler
- {
- /// <summary>
- /// 句柄事件
- /// </summary>
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>