摘要: 把所有的源代码作为一个类型保存在一个单独的文件里是一个好的编程习惯,但有时候一个类型变得过于庞大以至于这样做成为一个不切实际的约束。此外,编程人员经常使用源代码生成器来产生一个应用程序的初始结构,然后再修改产生的代码。不幸的是,当源代码在将来某个时候再次发布时,已存在的修改就要被覆盖了。 Partial types允许把类,结构和接口打破为多个代码碎片存在不同的源代码文件,以便于简化开发和维护... 阅读全文
posted @ 2007-06-20 14:29 dodo-yufan 阅读(195) 评论(0) 推荐(0)
摘要: C#的foreach语句常用来迭代可枚举的集合的元素。为了实现可枚举,一个集合必须有一个无参的GetEnumerator方法,这个方法返回一个枚举器。通常,枚举器比较难实现,但是,用迭代器来简化(枚举器)的任务十分有意义。 一个迭代器是产生一个有序的值序列的一个语句块 。一个迭代器由出现一个或者多个yield语句而区别于一般的语句块: · Yield return 语句产生迭代的下... 阅读全文
posted @ 2007-06-20 14:11 dodo-yufan 阅读(676) 评论(1) 推荐(0)
摘要: 在循环控制结构内使用匿名方法的局部变量的用法 当处理循环控制结构时将局部变量封装入类的数据成员有着有趣但危险的一面,让我们看看下面代码: public class Program{ public delegate void MyDelegate(); public static void Main(string[] args) { MyDelegate d = null; for (... 阅读全文
posted @ 2007-06-20 10:03 dodo-yufan 阅读(333) 评论(1) 推荐(0)
摘要: 匿名方法的作用域和局部变量用法 我们讨论了在方法的主作用域(the main scope)中的匿名方法的实现。当一个匿名方法在一个嵌套作用域中被定义时,并且匿名方法中用到独立作用域级的局部变量,C#为每个作用域创建一个private内部类。比如,假设scope 1有局部变量iTemp,而scope 2,是scope 1的嵌套作用域,有一个局部变量jTemp。让在使用来自scope 1 和 sc... 阅读全文
posted @ 2007-06-20 09:58 dodo-yufan 阅读(344) 评论(1) 推荐(0)
摘要: 匿名方法的局部变量用法 到现在为止,我们对匿名方法如何工作以及内部如何实现有了一点基本的理解。从根本上说,C#创建了private方法来包装匿名方法。同时这些方法的签名与它们被分配到的委托相匹配。现在,让我们看看下面的代码: public class Program{ public delegate void MyDelegate(); public static void Main(... 阅读全文
posted @ 2007-06-20 09:53 dodo-yufan 阅读(423) 评论(1) 推荐(0)