C# Coding Standard

原创 2005年03月04日 09:30:00

         在以前版本的Visual Studio,微软曾建议使用匈牙利命名法来写代码.在最近发布的.NET和它的编程语言中,微软更换了他的这一法则.

1.       对格式与方法名称使用PASCAL风格[1]

       public class SomeClass

       {

             public SomeMethod(){}

       }

2.       对局部变量和方法参数使用Camel风格[2]

       int number;

       void MyMethod(int someNumber)

       {}

3.       使用I作为接口前缀

       interface IMyInterface

       {..}

4.       使用m_作为私有成员变量前缀

       public class SomeClass

       {

          private int m_Number;

       }

5.       使用Attribute作为自定义属性类的后缀

6.       使用Exception作为自定义异常处理类的后缀

7.       使用动词形式命名方法名,ShowDialog()

8.       带有返回值的方法应该有一个方法来描述返回值,GetObjectStatus()

9.       使用易描述的变量名称

l         避免使用单一字符描述变量名称,it.应使用indextemp替代

l         对共有以及受保护成员避免使用匈牙利命名法则[3]

l         绝不使用缩写字符,如使用num代替number

10.   总是使用C#预定义格式,而不使用在System空间内的别名

       object    NOT        0bject

       string     NOT        String

       int          NOT        Int32

11.   一般的,对于格式使用大写字母,当处理.NET格式Type时使用Type后缀

       //Correct:

       public class LinkedList<K, T>

       {..}

       //Avoid:

       public class LinkedList<KeyType,DataType>

       {..}

12.   使用易理解的命名空间[4]名称,如产品或公司名称

13.   避免使用命名空间的完整限定名称,应使用using声明替代

14.   避免using声明放置在命名空间内部

15.   将所有的框架命名空间分组,将用户或第三方命名空间放置在其下

       using System;

       using System.Collections;

       using System.ComponentModel;

       using System.Data;

       using MyCompany;

       using MyControls;

16.   使用委托引用[5]代替显式的委托实例

       delegate void SomeDelegate();

       public void SomeMethod()

       {..}

       SomeDelegate someDelegate=SomeMethod;

17.   保持严格的缩进

l         对缩进使用3个空格位

l         绝不使用TAB或者不标准的缩进,1,24个空格位

18.   将注释缩拍在与代码缩进同等级的位置上

19.   所有的注释应该通过拼写检查.拼错的注释将预示冗余的开发

20.   所有的成员变量应该在开始就被声明,并使用单独一行将属性与方法区域分开

       public class MyClass

       {

            int m_Number;

             string m_Name;

 

 

             public void SomeMethodl()

             {}

             public void SomeMethod2()

             {}

       }

21.   在离第一次使用变量尽可能近的地方声明该局部变量

22.   文件名称应反映出其包含的类

23.   当使用partial[6]并将其分配给每个文件一部分时,对每个文件命名使用后缀P并附带一个额外的数字

       //In MyClassP1.cs

       public partial class MyClass

       {..}

       // In MyClassP2.cs

       public partial class MyClass

       {..}

24.   将反括号({)放置与新的一行

25.   对于匿名方法参照有规律的代码规划,其缩进应与匿名委托声明对齐

       delegate void SomeDelegate (string someString);

       //Correct:

       public void InvokeMethod()

       {

           SomeDelegate someDelegate=delegate (string name)

           {

                MessageBox.Show(name);

           };

           someDelegate ("Juval");

       }

       //Avoid

       public void InvokeMethod()

       {

           SomeDelegate someDelegate=delegate (string name)

              {MessageBox.Show(name);};

           someDelegate(”Juval");

       }

26.   对于匿名缺省参数的方法,应该使用空括号表示.

       delegate void SomeDelegate();

       //Correct

       SomeDelegate someDelegate1=delegate()

       {

            MessageBox.Show("Hello");

       };

       //Avoid

       SomeDelegate someDelegate1=delegate

       {

               MessageBox.Show("Hello");
       };


由于本人E文有限,所以翻译注释不当之处,请指明。

[1] 特指使用Pascal的命名规范命名类型和方法的名字

[2] 特指使用camel命名规范命名局部变量和方法的参数

[3] 匈牙利命名法则:变量名=变量类型+变量的英文意思(或缩写)

[4] namespace用于声明一个范围.此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法.

[5] delegate声明定义一种引用类型,该类型可用于将方法用特定的签名封装.委托实例封装静态方法或实例方法. 委托大致类似于C++中的函数指针;但是,委托是类型安全和可靠的

[6] partial简单来说即是使用不完整的类定义并且将部分分配到每个文件中

[收藏]C# Coding Standard from 《OReilly.Programming.dot.NET.Components.2nd.Edition》

/*程序员第八期有此文章,并且请了各位专家来点评,很不错。不过,该文翻译稍微有些问题,共享英文原版,想看者看。*/Appendix E. C# Coding StandardA comprehensi...
  • coofucoo
  • coofucoo
  • 2005年09月04日 11:01
  • 1976

C Coding Standard

1 通用 Rule 1 编译的Warnings不能被忽略掉 Rule 2 在已有Code或者三方的code基础上的修改,允许使用原来的coding standard Rule 3 ...
  • tianyeming
  • tianyeming
  • 2015年03月20日 09:14
  • 1187

1、Linux编程规范-C Coding Standard

1、通用 1.Rule 1 编译的Warnings不能被忽略掉 2.Rule 2 在已有Code或者三方的code基础上的修改,允许使用原来的coding standard 3.Rule ...
  • u013181595
  • u013181595
  • 2017年04月02日 14:01
  • 174

Overview of the High Efficiency Video Coding(HEVC) Standard之二

II. HEVC编码设计和功能亮点 HEVC Coding Design and Feature Highlights The HEVC standard is designed to ach...
  • fireroll
  • fireroll
  • 2013年06月10日 19:54
  • 3103

Java Coding Standard

Java Coding Standard 跳转到: 导航、 搜索 目录 1 1 命名规则 1.1 命名规则表1.2 Rule1 Java 文件名跟Class的名字要一致,大写第一个...
  • tianyeming
  • tianyeming
  • 2015年03月19日 09:36
  • 828

C# Coding Standard

  在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码.在最近发布的.NET和它的编程语言中,微软更换了他的这一法则. 1.       对格式与方法名称使用PASCAL风格...
  • chinawn
  • chinawn
  • 2005年04月05日 11:00
  • 482

CERT C/C++ Secure Coding Standard

CERT C Secure Coding Standard CERT C++ Secure Coding Standard
  • yasi_xi
  • yasi_xi
  • 2013年10月28日 16:26
  • 1046

史上最全代码风格大全!!!Coding Style Conventions and Standards

Coding Style Conventions and Standards A curated list of Coding Style Conventions and Standards. ...
  • xkzju2010
  • xkzju2010
  • 2015年08月31日 16:46
  • 1493

点注《C# Coding Standard》Charpter One

1       命名规则与风格         在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码.在最近发布的.NET和它的编程语言中,微软更换了他的这一法则.1.    ...
  • zr1982930
  • zr1982930
  • 2004年12月16日 16:04
  • 788

Java Coding Standard

本规范分为不同的级别,默认级别为必须遵循级别,而(II)为建议级别,非强制执行。1.格式与命名规范(Formating and Naming Conventions)最重要:不用死记硬背,直接使用Ec...
  • zhang8mss
  • zhang8mss
  • 2010年07月15日 01:57
  • 459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# Coding Standard
举报原因:
原因补充:

(最多只允许输入30个字)