需要学习的东西越来越多, 需要记住的东西也回来越多.
所以我越来喜欢, 把一个东西的要点整理出来, 整理成Reference Card的形式, 就像下面这两个网站那样.
DZone refcardz
DevCheatSheet
前些日子读了,C# in Depth, Second Edition,
中文名字叫<<深入理解C#(第2版)>>,
于是我习惯的将书上的内容整理成一页的内容,
以便于我自己概括性的回忆起书中的要点.
ps. 其实作者已经为我们制作了一版c# reference card,
我认为这个版本可能更适合广大C#开发者, 所以我把连接贴出来如下:
http://refcardz.dzone.com/refcardz/csharp
只不过, 我还需要一个更加总括性质的,
而且一定要在一页纸上打印出来的(最多一张A4纸的反正面),
因为我发现, 就我个人而言, 只要内容超过一页纸,
我回头再去看他, 或者思考他的时间就会明显减少.
话不多说, 我的内容如下, 打印版参附件:
C# in depth要点
第一部分 C#开发的进化史
第01章
第02章: C#1所搭建的核心基础
委托 / 类型系统特征(静态类型) / 值类型和引用类型
第二部分 C#: 解决C#1的问题
第03章: 用泛型实现参数化类型
第04章: 可空类型
第05章: 进入快速通道的委托
方法组转化
协变性和逆变性
使用匿名方法的内联委托操作
在匿名方法中捕捉变量 (有两个概念: 外部变量(相对于你们方法而言)/被捕获的外部变量(匿名方法中使用的.. 他是闭包的!)
第06章: 实现迭代器的捷径
使用yield语句简化迭代器
使用CCR实现伪同步代码
第07章 结束C#2的讲解: 最后的一些特性
分部类型 / partial, C#3还允许分部方法,他们是一些可选的钩子, 如果不存在就忽略之.
静态类型 / 用于实现工具类用static修饰class. 编译器将不为其声称构造函数
独立的取值方法/赋值方法属性访问器 / 对get和set可以设置不同的属性
命名空间别名 / 限定的命名空间别名; 全局命名空间别名; 外部别名
Pragma指令 / 警告pragma; 校验和pragma
非安全代码中的固定大小的缓冲区
把内部成员暴露给选定的程序集 / 在简单情况下的友元程序集
第三部分革新写代码的方式
第08章用智能的编译器来防错
自动实现的属性
隐式类型的局部变量 / var
简化的初始化/new Person(){Name=”T”, Age=6} ; Dictionary<> dict = new Dictionary<>{{“one”,1},{“t”:2},{…}} 要求有对应的add重载
隐式类型的数组 / MyMethod(new[]{“one”, “two”, “three”,}); 只有表达式的类型才会成为候选的数组类型
隐式类型 / var tom = new {Name = “tom”, Age = 6}; 他没有已经实现的接口,没有克隆和序列化能力, 他的内容包括:
对应版本的构造函数,公有只读属性及其对应的私有字段/Equals GetHashCode,ToString方法, 以及object的普通方法
第09章 Lambda表达式和表达式树
作为委托的Lambda表达式 / 对应的委托是Func<…>
使用List<T>和事件的简单例子 / list.FindAll(aLambda); list.Sort((e1,e2)=>e1.Name.CompareTo(e2.Name)); list.ForEach(…);
表达式树
类型推断和重载决策的改变 / 参p219页的小结
第10章 扩展方法 / 实现方法只需在普通的static方法的第一个参数前面, 加上this关键字
.net 3.5中的扩展方法
最为醒目的是Enumerable和Queryable. 分别针对IEnumerable<T>和IQueryable<T>
Enumerable.Range(0,10).Where(x => x%2!=0).Reverse();
使用思路和原则 / 扩展世界和使接口更丰富; 流畅接口; 理智使用
第11章 查询表达式和LINQ to Objects
选择元素 / Cast<T> 遇到错误类型会报错; OfType<T>将跳过错误类型
对序列进行过滤和排序/ where子句, orderby子句
let子句和透明标示符
联接
使用join子句进行内连接 ;
join…into子句进行分组连接; 可以用于模拟数据库的做外连接
使用多个from子句进行交叉连接和合并序列;
var query = from file in Directory.GetFiles(logDirectory, "*.log")
from line in ReadLines(file)
let entry = new LogEntry(line)
where entry.Type == EntryType.Error
select entry;
分组和延续查询
分组: group…by
延续查询: / into子句, 注意into子句是有应用对象的, 只可用于select和group…by子句
理解上可以将其想象为两个子查询, 但是实际上两个查询是放在一起延迟执行的.
C#将延续查询语法 first-query into identifier
second-query-body
转化为 from identifier in (first-query)
second-query-body
在查询表达式和点标记之间做出选择
第12章 超越集合的LINQ
使用LINQ to SQL查询数据库 / 数据源都是Table<T>, 他们都是IQueryable<T>
用IQueryable和IQueryProvider进行转换
LINQ有好的API和LINQ to XML
用并行LINQ代替LINQ to Objects
使用LINQ to Rx翻转查询模式
扩展Linq to Objects
第四部分 C#4 良好的交互性
第13章 简化代码的微小修改
可选参数和命名参数
改善COM互操作性
接口和委托的泛型可变性
对锁字段风格是事件的微小改变 / 使其更健壮
第14章 静态语言中的动态绑定
关于动态类型的快速指南 / dynamic
动态类型示例 / Com和office; 动态语言IronPython的交互;
存托管代码中的静态类型(1,执行时类型推断; 弥补泛型操作符的不足; 鸭子类型; 多重分发)
幕后原理&实现动态行为
第15章 使用契约让代码更清晰
代码契约
前置条件 Contract.Requires(text != null);
后置条件 Contract.Ensures(Contract.Result<int>() >= 0);
固定条件
Contract.Invariant(deck.Count+discardPile.Count+players.Sum(p=>p.CardCount)==Card.FullDeckSize);
断言和假设 Contract.Assume(firstRoll >= 1);
旧式契约
使用ccrewrite和ccrefgen重写二进制 / 如果你的代码不想依赖于这些关于契约的库, 那么可以使用这些工具重写我们的二进制文件?
静态检查
使用ccdocgen简化契约文档化
相关推荐
### C# In Depth 第二版:深入探索C#的核心特性 #### 一、书籍概述 《C# In Depth》第二版是一本专为中级到高级程序员编写的深度指南,作者是著名的C#专家Jon Skeet。这本书覆盖了C# 4的所有特性,并深入探讨了...
c# in depth 3rd 深入理解c# 第三版英文版 内容清晰,易于阅读
标题《C# in Depth 3rd Edition》说明这是一本专注于深入探讨C#编程语言的书籍。这本书是为那些已经有一定C#基础,并想要深入理解这门语言的高级特性和深层次机制的程序员准备的。由Jon Skeet撰写,这本书被多位业内...
c# in depth pdf the third editon 赵四本之一 《深入理解C#(第2版)》是C#领域不可多得的经典著作。作者Jon Skeet在详尽地展示C#各个知识点的同时,更注重从现象中挖掘本质。本书深入探索了C#的核心概念和经典特性,...
C# in Depth(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...
C# in Depth, Fourth Edition is your key to unlocking the powerful new features added to the language in C# 5, 6, and 7. Following the expert guidance of C# legend Jon Skeet, you’ll master ...
C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you’ll see the subtleties of C# programming in action, ...
《C# in Depth》是Jon Skeet所著的一本深入探讨C#编程语言的专业书籍,其第三版在2013年发布。这本书是C#程序员的宝贵资源,旨在帮助他们掌握C#的核心概念和高级特性,从而提升编程技能。 在书中,作者详细介绍了C#...
C# in Depth, 2nd。 《深入理解c#:第2版》是c# 领域不可多得的经典著作。作者在详尽地展示c# 各个知识点的同时,更注重从现象中挖掘本质。 经典中的经典哇 本人花钱在淘宝买的,版权问题我就没管了哈。但是本人也...
C# in Depth, Fourth Edition is your key to unlocking the powerful new features added to the language in C# 5, 6, and 7. Following the expert guidance of C# legend Jon Skeet, you’ll master ...
### C# in Depth 第三版:深入探讨C#的关键特性 #### 一、书籍概述与评价 《C# in Depth》第三版是一本由Jon Skeet编写的深度探索C#语言特性的专业书籍。该书获得了来自业界专家的高度赞誉,包括微软C#团队成员...
C# in Depth_ What you need to master C# 2 and 3.rar C# in Depth_ What you need to master C# 2 and 3.rar
### C# in Depth 第三版 – 关键知识点解析 #### 一、书籍概述与作者介绍 《C# in Depth》第三版是由资深微软MVP Jon Skeet编写的,该书首次出版于2013年,是C#编程语言领域的权威指南之一。Jon Skeet以其在C#社区...
Uniquely organized around concepts and use cases, this fifth edition include in-depth cover of concurrency and asynchrony new to C# 5.0 as well as continued coverage of parallel programming, code ...
《深入理解C#(第2版)》是C#领域...在第1版的基础上,书中新增了C# 4的新特性,如动态类型、命名实参和可选参数等,这些特性将C#语言提升到了一个新的层次。 《深入理解C#(第2版)》适合中高级.NET开发人员阅读。