谈到事件注册,EventHandler是最常用的。 EventHandler是一个委托,接收2个形参。sender是指事件的发起者,e代表事件参数。 □ 使用EventHandler实现猜拳游戏 使用EventHandler实现一个猜拳游戏,每次出拳,出剪刀、石头、布这三者的其中一种。 首先抽象出一...
分类:
其他好文 时间:
2014-10-02 20:38:23
阅读次数:
232
在"实现观察者模式(Observer Pattern)的2种方式"中,曾经通过接口的方式、委托与事件的方式实现过观察者模式。本篇体验使用Action实现此模式。 就举一个足球场上的例子,当裁判吹响终场哨,胜队庆祝,失败队落寞。把裁判看作是被观察者,比赛中的两队看作是观察者。 裁判作为被观察者需要提供...
分类:
其他好文 时间:
2014-10-02 13:46:52
阅读次数:
230
来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); Console.WriteLine(i); ...
分类:
其他好文 时间:
2014-10-02 11:41:52
阅读次数:
178
这个题目是考察二查搜索树,但其实实际上并不需要我们建立一个二叉树,我们只需要在重构的过程中,利用递归的思想直接进行一次遍历即可。 本代码中使用到了lambda表达式,所以代码量比较简洁,只有40行,c++里面还...
分类:
其他好文 时间:
2014-10-02 03:29:02
阅读次数:
142
问题重现
下面直接给出用于说明文章主题的完整代码。
//************************************************************
//
// Linq扩展方法示例代码
//
// Author:三五月儿
//
// Date:2014/10/01
//
// http...
分类:
其他好文 时间:
2014-10-01 21:03:51
阅读次数:
206
在"委托、Lambda表达式、事件系列01,委托是什么,委托的基本用法,委托的Method和Target属性"中,反编译委托,发现委托都是多播委托。 既然委托是多播委托,我们可以通过"+="把多个方法赋给委托变量,这样就形成了一个委托链, 它是怎样形成的?来看下面的例子:namespace Cons...
分类:
其他好文 时间:
2014-10-01 18:54:41
阅读次数:
231
在"委托、Lambda表达式、事件系列02,什么时候该用委托"一文中,使用委托让代码简洁了不少。namespace ConsoleApplication2
{ internal delegate bool MyCalculateDelegate(int val); class Program { s...
分类:
其他好文 时间:
2014-10-01 17:21:01
阅读次数:
235
假设要找出整型集合中小于5的数。 static void Main(string[] args) { IEnumerable source = new List(){2, 3, 4, 5, 6, 7, 8, 9,10, 11}; var result = GetNumbersLessThanFive...
分类:
其他好文 时间:
2014-10-01 13:29:21
阅读次数:
161
委托是一个类。namespace ConsoleApplication1
{ internal delegate void MyDelegate(int val); class Program { static void Main(string[] args) { } }
}
使用Reflector...
分类:
其他好文 时间:
2014-10-01 12:17:01
阅读次数:
214
最近由于项目需要,刚刚学完了Action委托和Func委托,发现学完了委托就必须学习lambda表达式,委托和Lambda表达式联合起来,才能充分的体现委托的便利、才能使代码更加简介、优雅。Lambda表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化...
分类:
其他好文 时间:
2014-09-28 20:25:55
阅读次数:
234