• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#编码规范[转载]

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.  避免将多个类放在一个文件里面。

2.  一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。

3.  一个文件最好不要超过500行的代码(不包括IDE产生的代码)。

4.  一个方法的代码长度最好不要超过25行。

5.  避免方法中有超过5个参数的情况。如果超过了,则应使用 struct 来传递多个参数。

6.  每行代码不要超过80个字符。

7.  原则上,尽量不要手工的修改机器产生的代码。

a)  如果需要编辑机器(IDE)产生的代码,编辑格式和风格要符合该编码标准。

b)  尽可能地使用片断类来把被保持的部分分解为各个因素

    注:这里的翻译参考了灵感之源老兄的说法,在Visual c#2005中,C#的语法已经支持partial修饰符,它的作用是可以将一个完整的类分解各个部分类,在编译时,编译器会将它们构造为一个类。

具体请参考

http://blog.joycode.com/zhanbos/archive/2004/05/25/22402.aspx 

http://weblogs.asp.net/jaybaz_ms/archive/2004/04/28/122392.aspx

8.  避免利用注释解释显而易见的代码。

a)  代码应该可以自解释。好的代码本身就应具体良好的可读性,所使用的变量和方法命名一般情况下不需要注释。

9.  文档应该仅用于assumptions, algorithm insights等等.

10.  避免使用方法级的文档。

a)  使用扩展的API文档进行说明。

b)  只有在该方法需要被其他的开发者使用的时候才使用方法级的注释。(在C#中就是///

11.  不要硬编码数字的值,总是使用构造函数设定其值。

12.  只有是自然结构才能直接使用const(常量),比如一个星期的天数。

13.  区别只读变量及常量的使用方法,如果想实现只读变量,可以直接使用readonly 修饰符

public class MyClass

{

   public readonly int Number;

   public MyClass(int  someValue)

   {

      Number = someValue;

   }

   public  const int  DaysInWeek = 7;

}

14.  每个假设必须使用Assert检查

a)  平均每15行要有一次检查(Assert)

using System.Diagnostics;

    object GetObject()

{…}

    object obj = GetObject();

Debug.Assert(obj != null);

15.  代码的每一行都应该通过白盒方式的测试。

16.  只抛出已经显示处理的异常。

17.  在捕获(catch)语句的抛出异常子句中(throw),总是抛出原始异常,用以维护原始错误的堆栈分配。
  catch(Exception exception)

{   

      MessageBox.Show(exception.Message);

      throw ;  //throw exception一样。

}

  注:同理,不推荐在循环语句中,进行直接的return操作。
    for (int i=0;i<100;i++)
    {
        if (i==10)
        {
            return; //不推荐的方式
        }
    }

18. 
避免方法的返回值是错误代码。

19.  尽量避免定义自定义异常类。

20.  当需要定义自定义的异常时:

a)  自定义异常要继承于ApplicationException

b)  提供自定义的序列化功能。

21.  避免在单个程序集里使用多个Main方法。

22.  只对外公布必要的操作,其他的则为internal

23.  避免使用友元程序集,因为它会增加程序集间的耦合度。

24.  避免编写从指定的位置加载的程序集的代码。

25.  使应用程序集尽量为最小化代码(EXE客户程序)。使用类库来替换包含的商务逻辑。

26.  避免给枚举变量提供显式的值。

//正确方法 

public enum Color

{   

   Red,Green,Blue

}

//避免

public enum Color

{   

   Red = 1,Green =  2,Blue = 3

}

27.  避免指定特殊类型的枚举变量。

//避免 

public enum Color  : long

{   

   Red,Green,Blue

}

28.  即使if语句只有一句,也要将if语句的内容用大括号扩起来。

29.  避免使用trinary条件操作符。

30.  避免在条件语句中调用返回bool值的函数。可以使用局部变量并检查这些局部变量。

bool IsEverythingOK()

{…}

//


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap