08 2015 档案

摘要:LINQ 的基本功能就是创建操作管道,以及这些操作需要的任何状态。 这些操作表示了各种关于数据的逻辑:如何过滤,如何排序以及如何将不同的数据源连接在一起。9.1 作为委托的Lambda表达式从许多方面,Lambda表达式都可以看作是C#2.0的匿名方法的一种演变。匿名方法能做的几乎一切事情都可以用L... 阅读全文
posted @ 2015-08-27 17:44 莱茵哈特 阅读(276) 评论(0) 推荐(0)
摘要:8.1 自动实现的属性公开可见的静态成员通常应该是线程安全的,编译器在这方面帮不上什么忙,得自己去实现public class InstanceCountingPerson { public string Name { get; private set; } pu... 阅读全文
posted @ 2015-08-21 18:39 莱茵哈特 阅读(193) 评论(0) 推荐(0)
摘要:分部类型:可以在多个源文件中为一个类型编写代码。特别适用于部分代码是自动生成,而其他代部分的代码为手写类型。静态类:对工具类进行整理,以便编译器能明白你是否在不恰当的地使用它们,并使你的意图更清晰。独立的取值方法/赋值方法属性访问器:属性终于有了公有取值方法和私有赋值方法了!(这不是惟一的组合,不过... 阅读全文
posted @ 2015-08-18 14:29 莱茵哈特 阅读(149) 评论(0) 推荐(0)
摘要:迭代器模式是行为模式的一种范例,行为模式是一种简化对象之间通信的设计模式。这是一种非常易于理解和使用的模式。实际上,它允许你访问一个数据项序列中的所有元素,而无须关心序列是什么类型----数组,列表,链表或任何其他类型。它能非常有效地构建出一个数据管道,经过一系列不同的转换或过滤后再从管道的另一端出... 阅读全文
posted @ 2015-08-14 16:56 莱茵哈特 阅读(228) 评论(0) 推荐(0)
摘要:5.1向笨拙的委托语法说拜拜class CSharp1Syntax { static void LogPlainEvent(object sender, EventArgs e) { Console.WriteLine ("LogPlain")... 阅读全文
posted @ 2015-08-11 16:14 莱茵哈特 阅读(369) 评论(0) 推荐(0)
摘要:4.1没有值时怎么办 想为DateTime变量设为null,但编译器不允许 (一个商品还没有卖出,则没有购买日期) 4.1.1为什么值类型的变量不能为null 对于引用类型的变量来说,其值是一个引用,而值类型变量的值是它本身的真实数据。可以认为,一个非空引用值提供了访问一个对象的途径。然而,null 阅读全文
posted @ 2015-08-06 11:24 莱茵哈特 阅读(364) 评论(0) 推荐(0)