02 2011 档案
摘要:一个使用了Func委托的小例子
//创建一个整型数组
int[] intArray = new int[] { 0, 1, 2, 3 };
//声明Func委托, 判断是否是奇数
Func IsOdd = i = ((i & 1) == 1);
阅读全文
摘要:很多标准查询操作符的设计原型都是返回一个IEnumerable类型的序列, 这些标准查询操作实际上不会在代码执行到那一行的时候就返回一个序列, 事实上返回的是一个对象. 当在枚举(比如foreach)这个对象的时候会从IEnumerable序列中生成一个元素, 这个时候才会真正执行查询操作. 这就是所谓的"延迟查询"
阅读全文
摘要:分部方法那些方法原型或定义都是在分部类的声明中指定, 但是没有在该分部类的相同声明中提供方法的具体实现方法. 一般情况下, 在相同分部类中的其它任何声明中都没有对这个方法的任何实现...
阅读全文
摘要:"扩展方法"是一个静态类的静态方法, 我们可以像调用其它类实例的方法那样来调用扩展方法. 扩展方法的声明和调用 例如我想给string类型添加一个ToInt32的静态方法, 把string类型变成Int32类型:
阅读全文
摘要:var是初始化一个匿名类型对象的专用关键字, 如果结合var和匿名类型, 在C#3.0中初始化一个匿名类型的对象是十分有个性的, 这样的初始化方法让当时刚接触C#的我一直摸不清头脑, 例如下面这个例子...
阅读全文
摘要:使用"命名方法"实现lambda的功能(Before C#2.0) C#2.0之前, 如果一个方法或者变量需要使用委托(delegate)时, 则之前必须创建一个命名方法, 并在需要委托的位置传入这个名称. 比如有一个针对int类型的数据处理, 目的是筛选出一个int数组中为奇数的元素, 或者其它一些满足条件的元素...
阅读全文
摘要:SICP第35页提到费马小定理在密码学中有很重要的应用, 还没有学过这门课, 但我又对加密解密有点兴趣, 决定一探究竟. 费马小定理维基百科里是这么定义的...
阅读全文
摘要:练习1.11 函数f如下定义: 如果n3, 那么f(n)=n; 否则f(n)=f(n-1)+2*f(n-2)*3*f(n-3). 写出一个递归和一个迭代求这个问题. 递归...
阅读全文
摘要:SICP丢在一旁一年有余, 越来越觉得里边的内容值得读读, 是时候行动了.就从本篇开始吧, 加油, 坚持. 练习题答案: http://eli.thegreenplace.net/category/programming/lisp/sicp/ IDE(DrRacket)下载地址: http://racket-lang.org/程序设计的基本元素基本表达式 用于表示最简单的个体组合的方法 通过他们可以从简单构造出复合的元素抽象的方法 对复合对象重命名, 并将它们当做单元去操作定义过程的一般形式 定义过程的一般形式
阅读全文