提高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 ...
随机推荐
- MEF初体验之三:Exports声明
组合部件通过[ExportAttribute]声明exports.在MEF中,有这么几种成员可声明exports的方式:组合部件(类).字段.属性和方法.我们来看下ExportAttribute类的声 ...
- SQL Server中TempDB管理(版本存储区的一个example)
原文:SQL Server中TempDB管理(版本存储区的一个example) 原文来自: http://blogs.msdn.com/b/sqlserverstorageengine/archive ...
- C代码分析器(一个 公开赛冠军)
最近心血来潮,我希望能写一个通用的代码分析工具(其实这个词有点太.事实上为C代码).看到这几天我看到代码头晕眼花,尽管Source Insight救命,仍然没有足够的智慧思考很多地方. 如今主要遇到的 ...
- .NET单元测试艺术(3) - 使用桩对象接触依赖
List 3.1 抽取一个设计文件系统的类,并调用它 [Test] public bool IsValidLogFileName(string fileName) { FileExtensionMan ...
- sql查询第二大的记录(转)
问题: 数据库中人表有三个属性,用户(编号,姓名,身高),查询出该身高排名第二的高度.建表语句 create table users ( id ,) primary key, name ), heig ...
- (大数据工程师学习路径)第三步 Git Community Book----Git介绍
一.git诞生 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.1991年,Linus创建了开源的Linux,并且有着为数众多的参与者.虽然有世界各地的志愿者为Linux编写代码 ...
- $.ajax()详解
$.ajax()方法详解 jquery中的ajax方法参数总是记不住,这里记录一下. 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为Str ...
- [LeetCode] 032. Longest Valid Parentheses (Hard) (C++)
指数:[LeetCode] Leetcode 指标解释 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode 032. Lon ...
- python 编码转换(转)
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换. 常见的编码转换分为以下几种情况: 自动识别 字符串编 ...
- Android JNI环境要SQLite加密模块简介
免费的SQLite开源源代码仅仅给提供了两个函数,仅仅有实现这两个函数才干实现数据库总体加密. 然后废了点劲从网上找了一个已经实现好的开源库http://sourceforge.net/project ...