摘要: 11.1.1 LINQ中的基础概念 1.序列 阅读全文
posted @ 2016-09-19 20:57 莱茵哈特 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 10.1 未引入扩展方法之前的状态 想为一个类型添加一些成员 你不需要为类型的实例添加任何更多的数据 你不能改变类型本身,因为是别人的代码 想处理的是接口不是类 为流提供简单功能的一个简单工具类 用StreamUtil将Web响应流复制到一个文件 10.2 扩展方法的语法10.2.1声明扩展方法 它 阅读全文
posted @ 2015-09-17 17:35 莱茵哈特 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 题目1:二叉树的镜像思路:递归 8 8 6 10转换成 10 65 7 9 1111 9 7 5 static void SwapNode(Node node) { if (node == null) { ret... 阅读全文
posted @ 2015-09-14 21:38 莱茵哈特 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目1:反转链表输入一个链表的头结点,反转该链表,并返回反转后链表的头结点。链表结点定义如下:struct ListNode { int m_nKey; ListNode* m_pNext; };分析:这是一道广为流传的微软面试题。由于这道题能够很好的反应出程序员思维是否严密,在微软之后已经有很... 阅读全文
posted @ 2015-09-10 15:52 莱茵哈特 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 题目一:栈的压入和弹出顺序题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的数字均不相等。例如序列1,2,3,4,5是某栈的压栈序列,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。思路:用... 阅读全文
posted @ 2015-09-06 12:22 莱茵哈特 阅读(241) 评论(0) 推荐(0) 编辑
摘要: LINQ 的基本功能就是创建操作管道,以及这些操作需要的任何状态。 这些操作表示了各种关于数据的逻辑:如何过滤,如何排序以及如何将不同的数据源连接在一起。9.1 作为委托的Lambda表达式从许多方面,Lambda表达式都可以看作是C#2.0的匿名方法的一种演变。匿名方法能做的几乎一切事情都可以用L... 阅读全文
posted @ 2015-08-27 17:44 莱茵哈特 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 8.1 自动实现的属性公开可见的静态成员通常应该是线程安全的,编译器在这方面帮不上什么忙,得自己去实现public class InstanceCountingPerson { public string Name { get; private set; } pu... 阅读全文
posted @ 2015-08-21 18:39 莱茵哈特 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 分部类型:可以在多个源文件中为一个类型编写代码。特别适用于部分代码是自动生成,而其他代部分的代码为手写类型。静态类:对工具类进行整理,以便编译器能明白你是否在不恰当的地使用它们,并使你的意图更清晰。独立的取值方法/赋值方法属性访问器:属性终于有了公有取值方法和私有赋值方法了!(这不是惟一的组合,不过... 阅读全文
posted @ 2015-08-18 14:29 莱茵哈特 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式是行为模式的一种范例,行为模式是一种简化对象之间通信的设计模式。这是一种非常易于理解和使用的模式。实际上,它允许你访问一个数据项序列中的所有元素,而无须关心序列是什么类型----数组,列表,链表或任何其他类型。它能非常有效地构建出一个数据管道,经过一系列不同的转换或过滤后再从管道的另一端出... 阅读全文
posted @ 2015-08-14 16:56 莱茵哈特 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 5.1向笨拙的委托语法说拜拜class CSharp1Syntax { static void LogPlainEvent(object sender, EventArgs e) { Console.WriteLine ("LogPlain")... 阅读全文
posted @ 2015-08-11 16:14 莱茵哈特 阅读(356) 评论(0) 推荐(0) 编辑