C#项目命名规范范例.docx

上传人:b****4 文档编号:4795726 上传时间:2022-12-09 格式:DOCX 页数:19 大小:101.20KB
下载 相关 举报
C#项目命名规范范例.docx_第1页
第1页 / 共19页
C#项目命名规范范例.docx_第2页
第2页 / 共19页
C#项目命名规范范例.docx_第3页
第3页 / 共19页
C#项目命名规范范例.docx_第4页
第4页 / 共19页
C#项目命名规范范例.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C#项目命名规范范例.docx

《C#项目命名规范范例.docx》由会员分享,可在线阅读,更多相关《C#项目命名规范范例.docx(19页珍藏版)》请在冰豆网上搜索。

C#项目命名规范范例.docx

C#项目命名规范范例

命名规范制定意义

  1方便代码的交流和维护,便于日后自己的再次阅读。

  2不影响编码的效率,不与大众习惯冲突。

  3使代码更美观、阅读更方便。

  4使代码的逻辑更清晰、更易于理解

命名规范制定原则

首要原则

有意义的,描述性的词语来命名。

能够一眼看出它作什么。

别使用会引起误解的名字。

如果名字一目了然,就无需用文档来解释方法的功能了

1. 除约定俗成的,别用缩写。

用name,address,salary等代替nam,addr,sal

2. 除用于循环,别使用单个字母的变量象i,n,x等.而要使用index,temp等。

for(inti=0;i

其他习惯

除了界面控件外,不要使用类型前缀。

比如:

使用名称amount,而不是intAmount;

 类:

使用名词、名词短语命名。

比如:

publicclassFileStream;

 方法:

使用动词、动词短语开始。

比如:

CreateUser(),RemoveAt()等;

 接口:

以I开始,后面加上名词、名词短语、形容词命名。

比如:

IDisposable;

常量:

所有单词大写,多个单词之间用"_"隔开。

publicconststringPAGE_TITLE="Welcome";

 命名空间:

基本格式:

CompanyName/ProjectName.TechnologyName[.Feature][.Design]

a)CompanyName/ProjectName:

公司名、项目名称或产品名称;

b) TechnologyName:

稳定的、公认的技术名称或架构层次名称;

c) [.Feature][.Design]:

可选的功能与设计;

C#命名规范

1、用pascal规则来命名方法和类.(第一个单词首字母大写,后面连接的每个单词首字母都大写)

public class DataBase ;public void GetDataTable()

2、类:

使用名词、名词短语命名。

比如:

publicclassFileStream;

2.用camel规则来命名局部变量和方法的参数. (第一个单词不大写,后面连接的单词首字母大写) 

public void AddUser(string userId, byte[] password)

{ string userName;}

3.所有的成员变量前加前缀 _ 

public class Database 

{ private string _connectionString; } 

4.接口的名称加前缀 I

interface ICompare 

{ int compare(); }

5.自定义代码属性类以Attribute结尾

public class OperationAttribute :

 Attribute 

6.自定义的异常以Exception结尾 

public class AppException :

 Exception 

7.方法的命名.一般将其命名为动宾短语,“动词+对象”. 

GetRecordData();GetPath();CreateFile();

8.代码的缩进.要用Tab,而不要用space.

9.使用带有说明性的变量名。

  (a)避免单字符串的变量名,使用类似于index或temp这样有意义的名字。

  (b)对于public或protected类型的变量避免使用匈牙利表示法。

  (c)不要缩写单词。

10.所有的类成员变量应该被声明在类的顶部,并用一个空行把它们和方法以及属性的声明区分开.

11.用有意义的名字命名namespace,如:

产品名、公司名. 

12.建议局部变量在最接近使用它时再声明. 

13.使用某个控件的值时,尽量命名局部变量. 

14.把引用的系统的namespace和自定义或第三方的用一个换行把它们分开. 

15.文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类. 

16.目录结构中要反应出namespace的层次.

17.大括号"{"要新起一行 .

18.在和你的代码缩进处于同一个级别处为该行代码添加注释

19单独方法要加注释字段(一目了然的课一部详细说名)

例如:

 

///

///

///

///

///

publicstringGetName(intid){

return“xiaomi“;

}

名称应该说明“什么”而不是“如何”。

通过避免使用公开基础实现(它们会发生改变)的名称,可以保留简化复杂性的抽象层。

例如,可以使用GetNextStudent(),而不是GetNextArrayElement()。

命名原则是:

选择正确名称时的困难可能表明需要进一步分析或定义项的目的。

使名称足够长以便有一定的意义,并且足够短以避免冗长。

唯一名称在编程上仅用于将各项区分开。

表现力强的名称是为了帮助人们阅读;因此,提供人们可以理解的名称是有意义的。

不过,请确保选择的名称符合适用语言的规则和标准。

1以下几点是推荐的命名方法。

1、避免容易被主观解释的难懂的名称,如方面名AnalyzeThis(),或者属性名xxK8。

这样的名称会导致多义性。

2、在类属性的名称中包含类名是多余的,如Book.BookTitle。

而是应该使用Book.Title。

3、只要合适,在变量名的末尾或开头加计算限定符(Avg、Sum、Min、Max、Index)。

4、在变量名中使用互补对,如min/max、begin/end和open/close。

5、布尔变量名应该包含Is,这意味着Yes/No或True/False值,如fileIsFound。

6、在命名状态变量时,避免使用诸如Flag的术语。

状态变量不同于布尔变量的地方是它可以具有两个以上的可能值。

不是使用documentFlag,而是使用更具描述性的名称,如documentFormatType。

(此项只供参考)

7、即使对于可能仅出现在几个代码行中的生存期很短的变量,仍然使用有意义的名称。

仅对于短循环索引使用单字母变量名,如i或j。

可能的情况下,尽量不要使用原义数字或原义字符串,如

Fori=1To7。

而是使用命名常数,如Fori=1ToNUM_DAYS_IN_WEEK以便于维护和理解。

8、用于事件处理的委托添加“EventHandler”后缀

9、用于事件处理之外的那些委托添加“Callback”后缀

10、不要给委托添加“Delegate”后缀

11、用名词或名词词组来给类型命名,在少数情况下也可以用形容词词组来给类型命名

12、用动词或动词词组来命名方法

13、用名词、名词词组或形容词来命名属性

14、要用动词或动词短语来命名事件

15、要用名词或名词短语来命名字段

2小写规则

大写

标识符中的所有字母都大写。

仅对于由两个或者更少字母组成的标识符使用该约定。

例如:

 

System.IO

System.Web.UI

 

下表汇总了大写规则,并提供了不同类型的标识符的示例。

 

标识符

大小写

样例

名字空间

Pascal

namespaceSystem.Security{…}

类型

Pascal

publicclassStreamReader{…}

接口

Pascal

publicinterfaceIEnumerable{…}

方法

Pascal

publicclassObject{

publicvirtualstringToString();

}

属性

Pascal

publicclassString{

publicintLength{get;}

}

事件

Pascal

publicclassProcess{

publiceventEventHandlerExited;

}

字段(私有实例)

Camel

privatestringuserName;

字段(公共静态)

Pascal

publicstaticreadonlystringUserId;

枚举

Pascal

enumFileMode{Append,…}

参数

Camel

publicclassConvert{

publicstaticintToInt32(stringuserId);

}

3缩写

     为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:

     1不要将缩写或缩略形式用作标识符名称的组成部分。

例如,使用GetWindow,而不要使用GetWin。

     2不要使用计算机领域中未被普遍接受的缩写。

3在适当的时候,使用众所周知的缩写替换冗长的词组名称。

例如,用UI作为UserInterface缩

写,用OLAP作为On-lineAnalyticalProcessing的缩写。

4在使用缩写时,对于超过两个字符长度的缩写请使用Pascal大小写或Camel大小写。

例如,使用HtmlButton或HTMLButton。

但是,应当大写仅有两个字符的缩写,如,System.IO,而不是System.Io。

5不要在标识符或参数名称中使用缩写。

如果必须使用缩写,对于由多于两个字符所组成的缩写请

使用Camel大小写,虽然这和单词的标准缩写相冲突。

4命名空间

     1、给命名空间命名时的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示。

           CompanyName.TechnologyName[.Feature][.Design]

       例如:

        namespaceJadeBird.StudentManager            //学员系统

        namespaceJadeBird.StudentManager.Register     //北学员注册模块

 

     2、命名空间使用Pascal大小写,用点号分隔。

3、TechnologyName指的是该项目的英文缩写,或软件名。

4、命名空间和类不能使用同样的名字。

例如,有一个类被命名为Debug后,就不要再使用Debug作为一个名称空间名。

5文件命名

1文件名遵从Pascal命名法,无特殊情况,扩展名小写。

6类

1、使用Pascal大小写。

2、用名词或名词短语命名类。

3、使用全称避免缩写,除非缩写已是一种公认的约定,如URL、HTML   

4、不要使用类型前缀,如在类名称上对类使用C前缀。

例如,使用类名称FileStream,而不是

CFileStream。

5、不要使用下划线字符(_)。

6、有时候需要提供以字母I开始的类名称,虽然该类不是接口。

只要I是作为类名称组成部分的整个单词的第一个字母,这便是适当的。

例如,类名称IdentityStore是适当的。

在适当的地方,使用复合单词命名派生的类。

派生类名称的第二个部分应当是基类的名称。

例如,ApplicationException对于从名为Exception的类派生的类是适当的名称,原因ApplicationException是一种Exception。

请在应用该规则时进行合理的判断。

例如,Button对于从Control派生的类是适当的名称。

尽管按钮是一种控件,但是将Control作为类名称的一部分将使名称不必要地加长。

 

public class FileStream

public class Button

public class String

7 接口

     以下规则概述接口的命名指南:

     1、用名词或名词短语,或者描述行为的形容词命名接口。

例如,接口名称IComponent使用描述性

名词。

接口名称ICustomAttributeProvider使用名词短语。

名称IPersistable使用形容词。

2、使用Pascal大小写。

     3、少用缩写。

4、给接口名称加上字母I前缀,以指示该类型为接口。

在定义类/接口对(其中类是接口的标准

实现)时使用相似的名称。

两个名称的区别应该只是接口名称上有字母I前缀。

 

5、不要使用下划线字符(_)。

6、当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。

两个名称的不同之处

只是接口名前有一个I前缀。

 

         以下是正确命名的接口的示例。

 

               publicinterfaceIServiceProvider

               publicinterfaceIFormatable

 

         以下代码示例阐释如何定义IComponent接口及其标准实现Component类。

 

               

public interface IComponent 

{

    // Implementation code goes here.

}      

public class Component:

 IComponent 

{

   // Implementation code goes here.

}

8枚举(Enum)

      枚举(Enum)值类型从Enum类继承。

以下规则概述枚举的命名指南:

          1对于Enum类型和值名称使用Pascal大小写。

          2少用缩写。

          3不要在Enum类型名称上使用Enum后缀。

          4对大多数Enum类型使用单数名称,但是对作为位域的Enum类型使用复数名称。

          5总是将FlagsAttribute添加到位域Enum类型。

         6不要命名“Reserved”枚举值。

9参数

      以下规则概述参数的命名指南:

          1、使用描述性参数名称。

参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。

      2、对参数名称使用Camel大小写。

          3、使用描述参数的含义的名称,而不要使用描述参数的类型的名称。

开发工具将提供有关参数的类型的有意义的信息。

因此,通过描述意义,可以更好地使用参数的名称。

少用基于类型的参数名称,仅在适合使用它们的地方使用它们。

          4、不要使用保留的参数。

保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。

相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。

          5、不要给参数名称加匈牙利语类型表示法的前缀。

      以下是正确命名的参数的示例。

 

              TypeGetType(stringtypeName)

stringFormat(stringformat,args()Asobject)

 10  方法

      以下规则概述方法的命名指南:

          1使用动词或动词短语命名方法。

          2使用Pascal大小写。

          3以下是正确命名的方法的实例。

 

             RemoveAll()

             GetCharArray()

 Invoke() 

11属性(property)

       以下规则概述属性的命名指南:

           1使用名词或名词短语命名属性。

           2使用Pascal大小写。

           3不要使用匈牙利语表示法。

4考虑用与属性的基础类型相同的名称创建属性。

例如,如果声明名为Color的属性,则属

性的类型同样应该是Color。

请参阅本主题中后面的示例。

 

         以下代码示例阐释正确的属性命名。

 

                

public class SampleClass

{

     public Color BackColor 

     {

           // Code for Get and Set accessors goes here.

      }

}

 

           以下代码示例阐释提供其名称与类型相同的属性。

 

                

public enum Color 

{

     // Insert code for Enum here.

}

 

public class Control

{

     public Color Color 

     { 

        get

           {

               // Insert code here.

           }

        set

          { 

            // Insert code here.}

    }

}

 

          以下代码示例不正确,原因是Color属性是Int类型的。

 

              publicenumColor

{

//InsertcodeforEnumhere.

}

 

 

               publicclassControl

               {

                   publicintColor

                   {

                       //Insertcodehere

                    }

               }

 

          在不正确的示例中,不可能引用Color枚举的成员。

Color.Xxx将被解释为访问一个成员,

该成员首先获取Color属性(C#中为int类型)的值,然后再访问该值的某个成员(该成

员必须是System.Int32的实例成员)。

12事件

       以下规则概述事件的命名指南:

           1、对事件处理程序名称使用EventHandler后缀。

2、指定两个名为sender和e的参数。

sender参数表示引发事件的对象。

sender参始

终是object类型的,即使在可以使用更为特定的类型时也如此。

与事件相关联的状态封装

在名为e的事件类的实例中。

对e参数类型使用适当而特定的事件类。

3、用EventArgs后缀命名事件参数类。

   4、考虑用动词命名事件。

5、使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事

件后。

例如,可以取消的Close事件应当具有Closing事件和Closed事件。

不要使用

BeforeXxx/AfterXxx命名模式。

           6、不要在类型的事件声明上使用前缀或者后缀。

例如,使用Close,而不要使用OnClose。

 7、通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为

OnXxx)。

此方法只应具有事件参数e,因为发送方总是类型的实例。

 

   以下示例阐释具有适当名称和参数的事件处理程序。

 

           publicdelegatevoidMouseEventHandler(objectsender,MouseEventArgse);

 

     以下示例阐释正确命名的事件参数类。

 

               publicclassMouseEventArgs:

EventArgs

               {

                  intx;

              inty;

 

                 publicMouseEventArgs(intx,inty)

                 {

this.x=x;

this.y=y;

}

 

                 publicintX

                 {

                     get

                     {

                         returnx;

                     }

                 }

 

                 publicintY

                 {

                get

                      {

                          returny;

                      }

                 }

               }

13常量(const)

       以下规则概述常量的命名指南:

       所有单词大写,多个单词之间用"_"隔开。

 

                publicconststringPAGE_TITLE="Welcome";

          

 

 13 字段

       以下规则概述字段的命名指南:

           1、private、protected使用Camel大小写。

           2、public使用Pascal大小写。

3、拼写出字段名称中使用的所有单词。

仅在开发人员一般都能理解时使用缩写。

字段名称不

要使用大写字母。

下面是正确命名的字段的示例。

 

               classSampleClass

               {

                   stringurl;

           stringdestinationUrl;

}

 

           4、不要对字段名使用匈牙利语表示法。

好的名称

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1