代码规范

C#中通常使用的两种格式

Camel(驼峰式): 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。string thisIsASample="";

Pascal(帕斯卡): 大小写形式-所有单词第一个字母大写,其他字母小写。string ThisIsASample

 

命名原则
1.尽量使用英文,实在不行就用拼音,千万不能用中文

2.变量名最好写全称,如 msg

3.不使用单个字母做变量名for(int i=0)这种除外

4.命名空间,类名,变量名,方法名使用pascal风格即每个单词首写字母都大写

namespace WinApp
{
    public class Person : IComparable
    {
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        public int Age { get; set; }

        /// <summary>
        /// 比对 >0 ; <0 ; =0;
        /// </summary>
        public int CompareTo(object obj)
        {
            return this.Age.CompareTo(((Person)obj).Age);
        }
    }
}

5.局部变量,方法参数使用Camel(驼峰式)风格

        /// <summary>
        /// 判断是否是成年人
        /// </summary>
        /// <param name="person">指定的人</param>
        /// <returns>返回bool类型,>=18 返回true 否则 false</returns>
        public bool IsAdult(Person person)//person 方法参数变量名,驼峰式
        {
            // age局部变量,驼峰式
            int age = person.Age;
            if (age >= 18)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

 

6.类的私有字段命名,使用_(下划线)加驼峰式 private int _name

7.委托和事件的命名

委托以EventHandler作为后缀命名,例如 SalesOutEventHandler。

事件以其对应的委托类型,去掉EventHandler后缀,并加上On前缀构成。

8.方法的命名 如果方法的返回值是bool类型,则其前缀为Is 如 IsMax,IsNum 如果某个属性的类型为bool类型,则其前缀为Can,例如:CanHidden。

9.集合类型后缀命名

//product
Array --> int[] productArray
List --> List<Product> productList
DataTeble / HashTable -->productTable
Dictionary --> Dictionary<string,string> productDictionay
DbSet/DataSet --> DbSet<Product> productSet

 


格式
1.缩进使用Tab键盘,大小为4个空格键

2.方法与方法之间最好空一行(也可以使用#region ... #endregion折叠)

    //    注释    +public -private    返回类型    参数
        #region 判断是否是成年人 +bool IsAdult(Person person)
        /// <summary>
        /// 判断是否是成年人
        /// </summary>
        /// <param name="person">指定的人</param>
        /// <returns>返回bool类型,>=18 返回true 否则 false</returns>
        public bool IsAdult(Person person)//person 方法参数变量名,驼峰式
        {
            // age局部变量,驼峰式
            int age = person.Age;
            if (age >= 18)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion

 

编程规范
1.注释
类型、属性、事件、方法参数

        /// <summary>
        /// 方法(作用)XXXX
        /// </summary>
        /// <param name="key">参数XX</param>
        /// <returns>返回XX</returns>

2.Class 的创建,类名和保存成的文件一致
  public class Person : IComparable
  保存的文件名字只能为Person.cs
3.避免使用大文件,如果一个文件中的代码量超过300-400 lines ,就必须考虑分开方法到各个不同的类中

4.同事需要避免写太长的方法,如果一个方法代码过长,应该考虑将其分解成不同的方法

 

5.一个方法只做一件事,同样一个类里面只存放相同目的的方法,不要将方法、类“污染”了

6.方法的调用,调用本类方法用this.调用父类方法用base

7.在代码中不使用具体的路径,不出现驱动器名,使用相对路径,并使路径可复用。

  http://www.cnblogs.com/Jolinson/articles/3792794.html

8.不要值try而不catch,如果是这样的话,有可能发生的错误,你将永远不知道发生了没有

            try
            {
                ...
            }
            catch (Exception)
            {
                
                throw;
            }

 

 

类型成员的排列顺序

类型成员的排列顺序自上而下依次为:

字段:私有字段、受保护字段

属性:私有属性、受保护属性、公有属性

事件:私有事件、受保护事件、公有事件

构造函数:参数数量最多的构造函数,参数数量中等的构造函数,参数数量最少的构造函数

方法:重载方法的排列顺序与构造函数相同,从参数数量最多往下至参数最少。

 

良好的编程习惯
1.去除没用到过类引用

2.格式化代码段,不格式化的话,视力脑力都是个挑战

3.对于那些已注释却舍不得删除的代码,他处存储,积累越多空间浪费越多

4.分割行不需太多,一行就行

5.相同的功能出现两次,请使用方法封装

6.命名不用简写,第二次看自己都不知道是什么

7.公用变量,按照用处分类并放到最前面

8.拆分很大的类

9.不要依赖与运算符号优先级,使用()

10.变量单独声明,int a,b,c;这样是不行的

11.给switch加上default

 


参考:
http://kb.cnblogs.com/page/148249/
http://www.cnblogs.com/aehyok/p/3418447.html
http://www.cnblogs.com/luanshixia/p/3258111.html
http://www.cnblogs.com/tianci/archive/2011/05/03/2035449.html
http://www.cnblogs.com/JimmyZhang/archive/2013/06/05/3118936.html
http://www.cnblogs.com/MeteorSeed/archive/2012/03/21/2404656.html
http://www.cnblogs.com/LeeYongze/archive/2009/11/05/1596891.html

posted on 2014-06-18 11:03  Aidou_dream  阅读(192)  评论(0)    收藏  举报

导航