Effective C# 备忘
来源:互联网 发布:base64转化为json格式 编辑:程序博客网 时间:2024/05/21 04:20
第一章 C#语言元素
项1:总是使用属性,不要使用可访问的数据成员
项2:常数项尽量使用readonly,而不是const
项3:类型装换时,不要使用强制转换,使用操作符is或者as
项4:使用Conditional标记代替#if条件编译
项5:给你建立的每个类写一个ToString()函数
项6:搞清楚值类型和引用类型的区别
项7:尽量选择不可变基础类型
项8:对于值类型保证0值代表一个有效的状态
项9:理解ReferenceEquals()、静态Equals()、实例Equals()以及==操作符之间的区别
项10:理解GetHashCode()的缺陷
项11:尽量使用foreach循环
第二章 .NET资源管理
项12:用变量初始化语句,而不是赋值语句
项13:使用静态构造函数初始化静态类成员
项14:利用构造函数链
项15:利用using语句和try/finally来释放资源
项16:减少内存垃圾
项17:减少装箱和拆箱
项18:实现标准的Dispose模式
第三章 用C#表达你的设计思想
项19:定义和实现接口,而不是继承
项20:搞清楚实现接口和重写虚拟函数的区别
项21:用Delegate表达回调要求
项22:用Event定义外发接口
项23:避免返回类的内部对象的引用
项24:尽量使用声明方式编程,而不是命令式编程
项25:尽量使用Serializable类型
项26:使用IComparable和IComparer接口实现可排序关系
项27:避免实现ICloneable
项28:避免实现类型转换操作符
项29:不要使用new修饰符,除非基类的改变要求你使用它
第四章 创建二进制组件
项30:尽量创建符合CLS规格的程序集
项31:尽量创建小而简单的函数
项32:尽量创建小而且内聚的程序集
项33:限制你创建的类型的可见性
项34:创建Large-Grain(一次传送多个数据) Web调用接口
第5章 使用.NET框架
项35:尽量实现可继承的函数,而不是事件处理程序
项36:有效地使用.NET运行时诊断函数
项37:使用标准配置机制
项38:利用和支持数据绑定
项39:使用.NET验证机制
项40:根据你的需要使用不同的Collection类
项41:尽量使用DataSet,而不是自定义结构
项42:使用属性来简化反射机制
项43:不要过分使用反射机制
项44:创建完整的应用程序专用的异常类
第6章 其他
项45:尽量使用强异常保证
项46:尽量少地使用互操作方法(Interop)
项47:尽量使用安全代码
项48:关注开发工具和资源
项49:为C#2.0做好准备
项50:关注ECMA标准
- Effective C# 备忘
- 读Effective Java 备忘
- <<Effective C++>>备忘
- Effective C#
- Effective C#
- Effective C#
- Effective c# and More Effective c# 文摘
- effective C++ 3th 备忘1
- effective C++ 3th 备忘2
- effective C++ 3th 备忘3
- 【备忘】c# 异步编程
- C# SendMessage备忘[转]
- c#正则表达式备忘
- VSTO WORD C# 备忘
- c#备忘知识点
- c#单元测试书籍备忘
- C#语言特性备忘
- c#基础代码备忘
- IP 限制规则
- delphi窗口的双缓冲绘制浅析
- 生理卫生课的经典对白
- 在CLUSTER环境给SQL SERVER 2008打补丁时需要注意的问题
- RMReport3.51破解手札㈢
- Effective C# 备忘
- Google Book Search APIs——谷歌图书搜索API
- SQLServer2008中恼人的"阻止保存要求重新创建表的更改"
- 关于JNI 和JAVA 编码的问题小结
- linux任务自动化 初步接触crontab和at
- ffffffffffff
- 数据窗口中各项指标的基本操作
- 人的精力是有限的
- MYSQL 5.0存储图片出现些问题