提高C#编程水平的50个要点 你掌握了多少呢?
提高C#编程水平的50个要点,程序员都是追求极致的完美主义者,下面的这些注意点和要点,你都掌握运用了多少呢?
- 总是用属性(Property)来代替可访问的数据成员
- 在 readonly 和 const 之间,优先使用readonly
- 在 as 和强制类型转换之间,优先使用 as 操作符
- 使用条件属性(Conditional Attribute)来代替条件编译语句 #if
- 总是为自定义类重载 ToString() 方法
- 区别值类型和引用类型
- 使用不可变的值类型(Immutable Atomic Value Types)
- 在值类型中,确保0是一个合法的数据
- 理解 Reference Equals、static Equals、instance Equals 和 比较运算符(==)之间的关系
- 理解 GetHashCode 方法的缺陷
- 在编写循环时,优先使用foreach
- 在定义变量的时候就将其初始化
- 使用静态构造函数来初始化静态成员变量
- 用多个构造函数时,利用构造函数链
- 使用 using 和 try-finally 来处理资源的释放
- 尽量避免产生资源垃圾
- 尽量避免使用装箱(Boxing)和拆箱(UnBoxing)
- 实现类的 Dispose 方法
- 在接口和继承(Inheritance)之间,优先使用接口(Interface)
- 区分接口和重载(Override)
- 用委托(Delegate)来实现回调(Callback)
- 用事件(Event)来定义外部接口
- 避免返回类内部成员的引用
- 使用元数据来控制程序
- 优先使用序列化(Serilizable)类型
- 对需要排序的对象实现 IComparable 和 IComparaer 接口
- 避免使用ICloneable 接口
- 避免使用类型转换操作符
- 只有当基类加入了与派生类中现有的函数名称相同的函数时,才需要使用 new 操作符
- 尽量使用CLS-Compliant
- 尽量编写短少、简单的函数
- 尽量编写比较小的程序集(Assembly)
- 限定类型的可见性(Visibility)
- 编写大粒度的 WEB API
- 在使用事件时,优先继承基类事件,而不是重新创建一个事件
- 多使用 Framework 的运行时调试(DEBUG、TRACE、EVENTLOG等)
- 使用 .NET 标准的配置机制
- 使用并且在类中支持 .NET 数据绑定功能(Data Binding)
- 使用 .NET 的验证机制(Validation)
- 根据你的需求选择正确的集合类(Collection)
- 在自定义结构中使用 Dataset
- 利用属性(Attributes)
- 不要过度使用反射
- 创建完整的应用程序特定的异常
- 尽可能多的考虑程序可能出现的异常,并作出处理
- 尽可能少的使用 Interop
- 尽量使用安全代码(Safe Code)
- 多多学习、使用外部工具和资源
- 准备使用 C# 2.0
- 学习 ECMA 标准
程序员都是追求极致的完美主义者,上面的这些注意点和要点,你都掌握运用了多少呢?
提高C#编程水平的50个要点 你掌握了多少呢?的更多相关文章
- 提高C#编程水平的50个要点
下面的文章转载于 提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as ...
- 【转】提高C#编程水平的50个要点
1.总是用属性 (Property) 来代替可访问的数据成员2.在 readonly 和 const 之间,优先使用 readonly3.在 as 和 强制类型转换之间,优先使用 as 操作符4.使用 ...
- 提高C#编程水平的50个要诀
一篇旧时的文章,看后觉得还可以,特别贴出来. 提高C#编程水平的50个要点: .总是用属性 (Property) 来代替可访问的数据成员 .在 readonly 和 const 之间,优先使用 rea ...
- 提高C#编程水平不可不读的50个要诀
提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之 ...
- 可以提高php编程效率的20个要点
整理了可以提高php编程效率的20个要点,发博客记录一下,需要的朋友可以参考. 1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row['id' ...
- 提高PHP编程效率的20个要点
用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中 ...
- 提高php编程效率技巧
提高php编程效率技巧 投稿:mrr 字体:[增加 减小] 类型:转载 时间:2015-08-13 php是全球范围应用范围最广的开发语言,php和linux.apache.mysql紧密结合,形 ...
- 提升自身的iOS编程水平 (转载)
阅读博客 在现在这个碎片化阅读流行的年代,博客的风头早已被微博盖过.而我却坚持写作博客,并且大量地阅读同行的iOS开发博客.博客的文章长度通常在3000字左右,许多iOS开发知识都至少需要这样的篇幅才 ...
- 有效提高win7电脑网速50倍
有效提高win7电脑网速50倍 目前有多少人在使用Windows7?据统计微软已成功售出3.5亿份正版操作系统,加上市场上流传以Win7旗舰版为首的盗版Win7系统下载,Win7激活次数可能已经超过1 ...
随机推荐
- winmd文件和dll文件的区别
今天在研究一个二维码项目,用到一个第三方组件 ZXing,因为做的是Windows应用商店程序,应用商店程序是可以引用winmd文件也可以引用dll文件,但是这两种文件ZXing都提供了,最后和同事讨 ...
- 在ABP项目的应用Castle Windsor
Castle Windsor常用介绍以及其在ABP项目的应用介绍 最近在研究ABP项目,有关ABP的介绍请看阳光铭睿 博客,ABP的DI和AOP框架用的是Castle Windsor下面就对Castl ...
- Facebook 网页应用图文设置教程
最近在弄一个项目,需要使用Facebook进行登陆并且获取用户Facebook相关的数据.网上查找有关Facebook应用设置教程,中文资料中,要么介绍的是N版之前的API,要么是App端的教程.Fa ...
- 应用ExcelPackage导出Excel
前阵子工作需要,要实现从数据库中导出数据到Excel.老套路 先去百度上查阅资料,发现了以下几种方法: 1:将DataGrid控件中的数据导出Excel 2:将dataview导出excel 3:从网 ...
- JSP/Servlet线程安全
携带servlet开发时间.线程安全是非常重要的.否则会导致一些意想不到的结果. Servlet的生命周期是由Web负责集装箱,什么时候client第一个请求Servlet时间,容器负责初始化Serv ...
- TortoiseGit安装与配置(转)
TortoiseGit 简称 tgit, 中文名海龟Git. 海龟Git只支持神器 Windows 系统, 有一个前辈海龟SVN, TortoiseSVN和TortoiseGit都是非常优秀的开源的版 ...
- java数据结构系列之——数组(1)
import javax.management.RuntimeErrorException; public class MyArray { private long array[]; private ...
- 基于GruntJS前端性能优化
在本文中,如何使用GruntJS为了使治疗简单的前端性能优化自己主动,我写了一个完整的样本放在Github上.能够參考一下.关于Yahoo的前端优化规则请參考:Best Practices for S ...
- POJ 1066 Treasure Hunt(相交线段&&更改)
Treasure Hunt 大意:在一个矩形区域内.有n条线段,线段的端点是在矩形边上的,有一个特殊点,问从这个点到矩形边的最少经过的线段条数最少的书目,穿越仅仅能在中点穿越. 思路:须要巧妙的转换一 ...
- java 选择文件夹对话框
java swing 选择文件夹对话框 import java.io.File; import javax.swing.JFileChooser; public class Test2 { publi ...