代码改变世界

Effective C# 学习笔记导航

2011-09-18 23:04  小郝(Kaibo Hao)  阅读(3040)  评论(3编辑  收藏  举报

最近一段时间,利用空闲时间读了《Effective C# - 50 Specific Ways to Improve Your C#》的第二版,收获不少,尤其是对于.Net 4.0 新特性(PLINQ、Dynamic programming等)的介绍让人眼前一亮,激发了许多新的思路。书是英文的,自己写了些中文的笔记,主要是用于帮助自己记住这些知识点,几乎每个笔记都有知识点的总结和相应的代码。也希望能对大家有所帮助 :)。下面分部分列出各个笔记,以便大家查找方便:

1. C# 语言特性

Effective C# 学习笔记(一) 用属性替代公有变量

Effective C# 学习笔记(二)readonly和const的性能和灵活性的权衡

Effective C# 学习笔记(三)在类型转换上多使用 as 和 is

Effective C# 学习笔记(四)使用Conditional Attributes 替代 #if

Effective C# 学习笔记(五) 最好重载你所创建类的ToString()方法

Effective C# 学习笔记(六)理解各种“等运算”操作

Effective C# 学习笔记(七) 重载GetHashCode()方法要小心

Effective C# 学习笔记(八)多用query语法,少用循环

Effective C# 学习笔记(九) 在你的API中避免使用类型转换运算

Effective C# 学习笔记(十) 用可选参数尽量减少方法重载

Effective C# 学习笔记(十一)尽量缩减函数体的大小,提高运行效率

2. .NET 资源管理

Effective C# 学习笔记(基础篇).NET 资源管理基础

Effective C# 学习笔记(十二) 多用成员变量初始化,少用指定赋值

Effective C# 学习笔记(十三)对静态类成员使用合适的初始化方式

Effective C# 学习笔记(十四) 尽量减少重复性的初始化逻辑

Effective C# 学习笔记(十五)使用Using和Try/Finally 进行资源清理

Effective C# 学习笔记(十六)尽量少的创建对象,给GC减减负

Effective C# 学习笔记(十七)标准析构模式的实现

Effective C# 学习笔记(十八)区分值类型和引用类型

Effective C# 学习笔记(十九)确保0(null)对于值(引用)类型是一个合法(理)的默认值

Effective C# 学习笔记(二十)不可变的原子值类型的好处

3. 在C#中实践有效的设计

Effective C# 学习笔记(二十一)为类型定义有限的职责

Effective C# 学习笔记(二十二)多用接口定义实现,少用继承

Effective C# 学习笔记(二十三)理解接口方法和虚方法的区别

Effective C# 学习笔记(二十四)运用Delegates来实现回调

Effective C# 学习笔记(二十五)以事件机制来实现通知

Effective C# 学习笔记(二十六)防止返回类内部的对象引用

Effective C# 学习笔记(二十七)使你的类型可被序列化

Effective C# 学习笔记(二十八)创建基于网络分布式部署的APIs

Effective C# 学习笔记(二十九)在范型中的协变和逆变

4. 使用Framework

Effective C# 学习笔记(三十)多用重载少用事件处理器

Effective C# 学习笔记(三十一)利用IComparable<T>和IComparer<T>接口来实现排序关系

Effective C# 学习笔记(三十二)避免使用ICloneable接口

Effective C# 学习笔记(三十三) 只在更新基类时,使用new关键字

Effective C# 学习笔记(三十四)避免在子类中重载父类的方法

Effective C# 学习笔记(三十五) 了解PLINQ如何实现并行算法

Effective C# 学习笔记(三十六) 理解PLINQ对IO上瓶颈的处理方式

Effective C# 学习笔记(三十七) 警惕并行处理中的异常处理

5. C#中的动态编程特性

Effective C# 学习笔记(三十八)理解Dynamic的得与失

Effective C# 学习笔记(三十九) 使用Dynamic处理范型参数的运行时类型

Effective C# 学习笔记(四十)使用Dynamic处理匿名类型参数

Effective C# 学习笔记(四十一)使利用DynamicObject或IDynamicMetaObjectProvider接口实现数据驱动的动态类型

Effective C# 学习笔记(四十二)理解Expression API的使用方式    

Effective C# 学习笔记(四十三)使用Expression处理绑定(属性值更改)事件

Effective C# 学习笔记(四十四)合理地在C#中使用Dynamic特性

6. 杂项

Effective C# 学习笔记(四十五)减少装箱拆箱行为

Effective C# 学习笔记(四十六)对异常进行分类并逐类处理

Effective C# 学习笔记(四十七)对异常进行strong guarantee 策略处理

Effective C# 学习笔记(四十八)使用安全代码

Effective C# 学习笔记(四十九)创建符合CLS标准的程序集

Effective C# 学习笔记(五十)构建小型内聚程序集