`

C# in depth要点整理(一张A4纸, 打印版)

 
阅读更多

需要学习的东西越来越多, 需要记住的东西也回来越多.

所以我越来喜欢, 把一个东西的要点整理出来, 整理成Reference Card的形式, 就像下面这两个网站那样.

DZone refcardz

http://refcardz.dzone.com/

DevCheatSheet

http://devcheatsheet.com/

 

前些日子读了,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. 编译器将不为其声称构造函数

         独立的取值方法/赋值方法属性访问器 / getset可以设置不同的属性

         命名空间别名 / 限定的命名空间别名; 全局命名空间别名; 外部别名

 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中的扩展方法

                   最为醒目的是EnumerableQueryable. 分别针对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子句是有应用对象的, 只可用于selectgroup…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>

IQueryableIQueryProvider进行转换

LINQ有好的APILINQ to XML

用并行LINQ代替LINQ to Objects

使用LINQ to Rx翻转查询模式

扩展Linq to Objects

第四部分  C#4  良好的交互性

13       简化代码的微小修改

         可选参数和命名参数

         改善COM互操作性

         接口和委托的泛型可变性

         对锁字段风格是事件的微小改变 / 使其更健壮

14     静态语言中的动态绑定

         关于动态类型的快速指南 / dynamic

         动态类型示例 / Comoffice; 动态语言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);

                   旧式契约

               

         使用ccrewriteccrefgen重写二进制 / 如果你的代码不想依赖于这些关于契约的库, 那么可以使用这些工具重写我们的二进制文件?

         静态检查

         使用ccdocgen简化契约文档化

 

分享到:
评论

相关推荐

    c# in depth 2nd 第二版

    ### C# In Depth 第二版:深入探索C#的核心特性 #### 一、书籍概述 《C# In Depth》第二版是一本专为中级到高级程序员编写的深度指南,作者是著名的C#专家Jon Skeet。这本书覆盖了C# 4的所有特性,并深入探讨了...

    c# in depth 3rd 深入理解c# 第三版英文版

    c# in depth 3rd 深入理解c# 第三版英文版 内容清晰,易于阅读

    C# in Depth 3rd Edition

    标题《C# in Depth 3rd Edition》说明这是一本专注于深入探讨C#编程语言的书籍。这本书是为那些已经有一定C#基础,并想要深入理解这门语言的高级特性和深层次机制的程序员准备的。由Jon Skeet撰写,这本书被多位业内...

    c# in depth 第三部 译本

    c# in depth pdf the third editon 赵四本之一 《深入理解C#(第2版)》是C#领域不可多得的经典著作。作者Jon Skeet在详尽地展示C#各个知识点的同时,更注重从现象中挖掘本质。本书深入探索了C#的核心概念和经典特性,...

    C# in Depth(2nd) 无水印pdf

    C# in Depth(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...

    C# in Depth.rar

    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

    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, 3rd. Jon Skeet PDF and Epub

    《C# in Depth》是Jon Skeet所著的一本深入探讨C#编程语言的专业书籍,其第三版在2013年发布。这本书是C#程序员的宝贵资源,旨在帮助他们掌握C#的核心概念和高级特性,从而提升编程技能。 在书中,作者详细介绍了C#...

    深入理解C#(C# in Depth, 2nd)

    C# in Depth, 2nd。 《深入理解c#:第2版》是c# 领域不可多得的经典著作。作者在详尽地展示c# 各个知识点的同时,更注重从现象中挖掘本质。 经典中的经典哇 本人花钱在淘宝买的,版权问题我就没管了哈。但是本人也...

    Manning C# in Depth 4th Edition

    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 ...

    CSharp in Depth 3rd Edition

    ### 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_ What you need to master C# 2 and 3.rar

    C# in Depth, 3rd edition, Jon Skeet, 2013

    ### C# in Depth 第三版 – 关键知识点解析 #### 一、书籍概述与作者介绍 《C# in Depth》第三版是由资深微软MVP Jon Skeet编写的,该书首次出版于2013年,是C#编程语言领域的权威指南之一。Jon Skeet以其在C#社区...

    C# 5.0 in a Nutshell

    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# in Depth, Second Edition[深入理解C#(第2版)].pdf

    《深入理解C#(第2版)》是C#领域...在第1版的基础上,书中新增了C# 4的新特性,如动态类型、命名实参和可选参数等,这些特性将C#语言提升到了一个新的层次。 《深入理解C#(第2版)》适合中高级.NET开发人员阅读。

Global site tag (gtag.js) - Google Analytics