1.总是用属性 (Property) 来代替可访问的数据成员

2.在 readonly 和 const 之间,优先使用 readonly

3.在 as 和 强制类型转换之间,优先使用 as 操作符

4.使用条件属性 (Conditional Attributes) 来代替条件编译语句 #if

5.总是为自定义类重载 ToString 方法

6.区别值类型和引用类型

7.使用不可变的值类型(Immutable Atomic Value Types)

8.在值类型中,确保0是一个合法的数据

9.理解 ReferenceEquals, static Equals, instance Equals 和 比较运算符(==)之间的关系

10.理解 GetHashCode方法的缺陷

11.在编写循环时,优先使用 foreach.

12.在定义变量的时候就将其初始化

13.使用静态构造函数来初始化静态成员变量

14.用多个构造函数时,利用构造函数链

15.使用using和try/finally来处理资源的释放

16.尽量避免产生资源垃圾

17.尽量避免使用装箱(boxing)和拆箱(unboxing)

18.实现类的 Dispose 方法

19.在接口和继承(Inheritance)之间,优先使用接口(interface)

20.区分接口和重载(overrides)

21.用委托(delegate)来实现回调(callback)

22.用事件(event)来定义外部接口

23.避免返回类内部成员的引用

24.使用元数据来控制程序

25.优先使用可序列化(serilizable)类型

26.对需要排序的对象实现IComparable和IComparer接口

27.避免使用 ICloneable接口

28.避免使用类型转换操作符

29.只有当基类加入了与派生类中现有的函数名称相同的函数时,才需要使用 new 操作符

30.尽量使用 CLS-Compliant

31.尽量编写短少,简单的函数

32.尽量编写比较小的程序集(assembly)

33.限定类型的可见性(visibility)

34.编写大粒度的 web API

35.在使用事件时,优先继承基类事件,而不是重新创建一个事件

36.多使用 framework 的运行时调试 (DEBUG, TRACE, EVENTLOG等)

37.使用.net标准的配置机制

38.使用并且在类中支持.net的数据绑定功能 (Data Binding)

39.使用.net的验证机制 (Validation)

40.根据你的需求选择正确的集合类(Collection)

41.在自定义结构中使用 DataSet

42.利用属性(Attributes)

43.不要过度使用反射(Reflection)

44.创建完整的,应用程序特定的异常

45.尽可能多的考虑程序可能出现的异常,并作出处理

46.尽可能少的使用 Interop

47.尽量使用安全代码 (safe code)

48.多多学习、使用外部工具和资源

49.准备使用 C# 2.0

50.学习 ECMA 标准

http://www.cnblogs.com/sosoft/p/csharp.html

多个提高C#编程能力的建议的更多相关文章

  1. 怎样提高js的编程能力

    1,学习js分几个阶段,没入门,入门初学者,中级水平,高级水平,ppt水平. 2,没入门的如何学习? 我当初是先学jquery,有css和html基础,有css基础看jq的语法很简单,就是选择符,jq ...

  2. 该如何有效的提高C/C++语言编程能力

    很多答案都谈到算法的重要性,我的答案主要集中在C++上,只是一些个人经验. 其实我以前也有这样的困惑,感觉完了不知道怎么用.而且我也不是学计算机的,也没有从事相关工作,所以大概有十年的时间都没写什么程 ...

  3. [转载]Web前端开发工程师编程能力飞升之路

    [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  4. 【转】Web前端研发工程师编程能力飞升之路

    分类: Javascript | 出自 海玉的博客 今天看到这篇文章.写的非常有意思.发现自己还有很长的一段路要走. [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧: 如 ...

  5. Web前端研发工程师编程能力飞升之路

    今天看到这篇文章.写的非常有意思,于是转载了.看看我们都处于什么的阶段. [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着 ...

  6. WEB前端研发工程师编程能力成长之路(1)(转)

    WEB前端研发工程师编程能力成长之路(1)   [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧: 如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧: ...

  7. Web前端开发工程师编程能力飞升之路

    [背景] 如果你是刚进入web前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年web产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  8. web前端研发工程师编程能力成长之路

    [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧:如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧:如果你是四五年的前端开发高手,没有难题能难得住你的 ...

  9. WEB前端研发工程师编程能力成长之路(1)

    [背景] 如果你是刚进入WEB前端研发领域,想试试这潭水有多深,看这篇文章吧: 如果你是做了两三年WEB产品前端研发,迷茫找不着提高之路,看这篇文章吧: 如果你是四五年的前端开发高手,没有难题能难得住 ...

随机推荐

  1. ORACLE冷备份与恢复

    ORACLE备份和恢复有三种方式: (1)数据泵(expdp/impdp) (2)冷备份 (3)RMAN备份 就分类而言,(1)和(2)统有称为"冷"备份,(3)称为"热 ...

  2. 减小ipa体积之删除frameWork中无用mach-O文件

    最近项目末期, 我们团队为了ipa的大小使用不少的体积减小的方法, 除了一些常规的方法之外, 我分享一下自己研究出来的新思路. 首先我们来简单的介绍一下mach-O. 什么是mach-O? Mach- ...

  3. Logging with NLog

    相比较log4net, 我更喜欢NLog, 因为NLog 更简单, 而且配置选项也更加的清楚,可能是因为log4net 是从log4j 移植过来的一个原因吧,总感觉有很多的java 成分在. 要使用N ...

  4. 探索c#之不可变数据类型

    阅读目录: 不可变对象 自定义不可变集合 Net提供的不可变集合 不可变优点 不可变对象缺点 不可变对象 不可变(immutable): 即对象一旦被创建初始化后,它们的值就不能被改变,之后的每次改变 ...

  5. 人人都是 DBA(XII)查询信息收集脚本汇编

    什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA& ...

  6. 链表&LRU

    简介 链表就是链式存储数据的一种数据结构.双向链表每个数据存储都包含他的前后数据节点的位置信息(索引/指针). class DSChain<T> { //使用栈来进行废弃空间回收 priv ...

  7. 循序渐进,了解Hive是什么!

    一直想抽个时间整理下最近的所学,断断续续接触hive也有半个多月了,大体上了解了很多Hive相关的知识.那么,一般对陌生事物的认知都会经历下面几个阶段: 为什么会出现?解决了什么问题? 如何搭建?如何 ...

  8. Java集合类的总结

    Java语言的java.until包中提供了一些集合类,这些集合类又被称为容器.说到集合就会想到数组,集合类与数组的不同之处是,数组的长度是固定的,集合的长度是可变的:数组用来存放基本数据类型,集合从 ...

  9. javascript 学习笔记

    本文主要记录在学习过程中遇到的JavaScript难点或者容易疏忽的细节,也方便自己日后翻阅学习. 1.arr.length === + arr.length arr.length === + arr ...

  10. JAVA基础代码分享--求圆面积

    问题描述 用户输入圆的半径,计算并显示圆的面积 代码分享 /** * @author hpu-gs * 2015/11/25 */ public class Circle { public stati ...