在网上看到一些.NET牛逼开发人员对《.NET设计规范》一书评价很高,像我这种有点菜但是立志在.net上希望自己有点剑术的人,立马在网上找到该书,下载下来学习和研究,下面自己是在看此书时候做的一点笔记,仅自己后续温故而知新。
一、类型和名字空间
1.一个类型由一组定义明确、相互关联的成员组成,不应该包含一些不怎么有关的功能。
如果事情变得很复杂,那么久定义更多的类型
2.名字空间的目的是把类型组织成一个有条理、易于浏览、易于理解的层次结构,而不是简单的解决有相同名字的类型之间的名字冲突。
二、类型和结构之间的选择
1.类型和结构:a.大约是16个字节的类型应该可以定义成结构,b.不需要经常被装箱
三、类型和接口之间的选择
1.一个派生类继承一个基类是一种 IS-A关系,一个类时实现一个接口是CAN-DO关系
2.接口可以达到多重继承的类似效果
3.接口可以提供一个多态的值类型,如:public strunt Int32 :IComparable,IFormattable,IConvertible
四、抽象类的设计
1.不要为抽象类定义公有的构造函数,因为抽象类不可以去实例话,应该定义受保护的构造函数或者内部构造函数(internal)
五、静态类
1.静态类智能包含静态成员,静态类是密封的,抽象的,不能覆盖或者声明任何实例成员。
2.提供一种访问操作的快捷方式。
3.静态类应该被作为辅助类,来支持框架的面向对象的核心。
六、结构
七、枚举(分为简单枚举和标记枚举,标记枚举可以去进行位运算)
1.运用于一组值的集合,相当于一个包含静态常量的结构。
2.不要枚举用于开发的集合(比如:操作系统的版本,朋友的名字)。
第五章
成员设计
1.函数重载:把最长的重载函数做成虚函数,较短的函数仅仅是调用较长的重载
2.不要再重载函数中使用ref,out
3.构造函数分:类型构造函数(静态构造函数),实例构造函数
最好显示的申明公有默认构造函数,不声明时候,c#编译器自动生成一个公有的默认构造函数,
抽象类则生成一个受保护的够着函数
要把构造函数的参数用作设置主要属性的便捷方法
要把静态构造函数定义成私有的