c#
文章平均质量分 75
stilphen
这个作者很懒,什么都没留下…
展开
-
深入浅出话多态(上)——具体而微
深入浅出话多态(上)——具体而微小序 前几天写了一篇《深入浅出话委托》,很多兄弟姐妹发Mail说还算凑合,又有兄弟说能不能写一篇类似的文章,讲解一下什么是“多态”。一般情况下我写文章都是出于有感而发:一来做个思考的总结(怕时间长了就忘记了),二来与大家分享一下。“多态”实在是个大概念,我没有仔细研究过,更不消说在实践中有深入的使用,所以本文纯属硬着头皮上——如果内容有什么闪失,转载 2007-03-15 17:16:00 · 812 阅读 · 0 评论 -
深入浅出话多态(下)——牛刀小试
一.多态的现实意义 如果一个编程元素没有可以应用在软件工程中的现实意义,那将是一件不可容忍的事情。同理,如果你不了解一个编程元素的现实意义、不知道在编程时应该怎么用,就不能说自己懂得了这个编程元素。 我的编程经验实在不多,就我个人感觉,多态最大的现实意义在于“代码的简化”。 多态为什么能简化代码捏? 先让我们用一句话概括多态的实现:首转载 2007-03-29 17:11:00 · 1190 阅读 · 0 评论 -
深入浅出话委托
一.什么是委托(Delegate) 先来点经典的解释——摘自MSDN:A delegate is a type① that references a method②. Once a delegate is assigned a method, it behaves exactly like that method③. The delegate method can be use转载 2007-03-29 17:19:00 · 717 阅读 · 0 评论 -
讲故事谈.NET委托:一个C#睡前故事
从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知 道彼得的工作进度,以防止他偷懒。但是彼得又不想让老板呆在他的办公室里站在背后盯着他,于是就对老板做出承诺:无论何时,只要我的工作取得了一点进展我 都会及时让你知道。彼得通过周期性地使用“带类型的引用”(原文为:“typed reference” 也就是dele转载 2007-03-29 17:21:00 · 615 阅读 · 0 评论 -
为什么用委托
ET带来了一些新的东西,其中委托是一个。我总觉得委托很神秘,比较难理解。看帮助,查资料,不是语焉不详,就是故弄玄虚,越看越糊涂。有时候,真有点怀疑网上写文章的这些人自己是否真的弄清楚了。后来编码的时候用到了一下,总算有了点认识。一言以蔽之,委托的作用是使得函数可以当作参数和变量来使用。(今天又查了一下帮助,里面说委托作用类似于“ C++ 中函数指针”,因为我对函数指针不熟,所以,惭愧,怪不原创 2007-03-30 17:05:00 · 832 阅读 · 0 评论 -
Delegate比较全面的例子
将Delegate理解为接口,只有一个方法的接口,这样最容易理解。这个方法只有声明,没有实现,实现在别的类。(实际上应该把它看作函数指针,不过接口更容易理解些。) 在你的类中有一个Delegate就相当于有一个接口。通过这个接口你可以调用一个方法,而这个方法在别的类定义,由别的类来干。 为了说的形象一点,举个例子: 学生考试完后成绩出来了,考的好了老师要表扬,考的不好了老师要批评。转载 2007-03-29 17:12:00 · 832 阅读 · 0 评论 -
深入浅出话事件(上)
深入浅出话事件(上)小序 在上篇文章(《深入浅出话委托》)中,我们集中讨论了什么是委托以及委托的用法。有朋友问:什么时候用委托——说实话,使用某种编程要素是一种思想,更是一种习惯。举个极端点的例子:比如你问我“什么时候使用for循环”,我完全可以回答——根本用不着for循环,用if加goto就完全能够搞定——我们大多数人使用for循环,是因为我们认同for循环的思想,并且养转载 2007-03-29 17:14:00 · 733 阅读 · 0 评论 -
深入浅出话事件(下)
二.事件的由来 在传统的面向对象的概念中是没有“事件”这个概念的。传统的面向对象概念中只有数据(Data,也称为field、域、成员变量)和方法(Method,也就是成员函数、function)。如果我没记错,那么事件这个概念最早出现在微软的COM技术中,又因为VB是基于ActiveX(COM的一种)的,所以“事件”这一概念便通过VB广而推之、为众多程序员所熟知并使用的——我就是其转载 2007-03-29 17:16:00 · 801 阅读 · 0 评论 -
最简单最明白的关于“事件”和“委托”的例子说明
1、一个节拍器,每3秒发出一个事件,接收者听到后说“HEARD IT”,本事例说明了怎样创建和传递事件。把下面的代码复制到控制台程序即可。using System; namespace wildert { public class Metronome { public event TickHandler Tick; public EventArg原创 2007-04-17 10:54:00 · 1006 阅读 · 0 评论