admin管理员组

文章数量:1531487

2024年5月17日发(作者:)

基于.NET项目的代码书写规范要求书

第一章 主体命名规范

外挂服务命名规范

服务项目命名

所有服务项目名使用ESrv(注意大小写)开头,第五位字母开始自订义,但是第五位字母

必须大写。比如ESrvDemo1,其中Demo1为自定义名称。

二、类成员访问权限规范

所有类成员要严格的按照成员的使用性质,设置它们的访问修饰符,修饰符的意义如下:

声明的可访问性意义

l public //访问不l 受限制。

l protected //访问仅限于包含类或从包含类派生的类型。

l internal //访问仅限于当前程序集。

l protected internal //访问仅限于从包含类派生的当前程序集或类型。

l private //访问仅限于包含类型。

第二章 代码书写规范

一、代码注释规范

1) .cs文件的注释

所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等格式如下:

//********************************************************

//

//创建日期: 2004.7.19

//作 者: XXX

//功能说明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

//

//********************************************************

函数参数命名及过程注释

参数一定要能说明要传递的意思,用对应的英文或相近的英文单词表示均小写开头。所有的

函数体开头都要加上注释,所以注释使用.NET注释规范,如下格式:

///

/// 构造函数

///

/// 示例参数1

/// 示例参数2

public UpgradeThread(string netPath, string myPath)

{

程序语句。。。。。

}

3) 常量变量注释

所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加

上注释。如下示例:

///

/// 当前线程指向的备份文件本地保存路径

///

public string StorePath = "";

4) 代码修改注释

当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息,格式

如下:

/*BEGIN 2004-7-19 Jayson 修正了XXX问题*/

略…

/*END 2004-7-19 Jayson*/

二、代码排版规范

1) 语句结构

为保证语句结构的清晰和程序的可读性,在编写软件程序时应注意以下几个方面的问题:

在一行内只写一条语句,并采用空格、空行和移行保证清楚的视觉效果。

每一个嵌套的函数块,使用一个TAB缩进,大括号必须放在条件语句的下一行,单独成一

行,便于查看是否匹对。例如,有一段程序如下:

for(int i=0; i<10; i++){ine(“xxxxx”)}

应该写为:

for(int i=0; i<10; i++)

{

ine(“xxxxx”)

}

2) 代码书写格式规范

文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为

2-3行;

在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。

每行长度尽量避免超过屏幕宽度。

尽量用公共过程或子程序去代替重复的功能代码段。

使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成

x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。

避免采用过于复杂的条件测试。

避免过多的循环嵌套和条件嵌套。

一个函数尽可能不要超过200行。一个文件应避免超过2000行。

避免采用多赋值语句,如x = y = z;

三、结构定义规范

1) 命名规则

用大小写字母表示。

TAG_Xxxx 以TAG开头,下划线后面定义具体结构的名称,或者写成TAGXxxx。

缩写字母采用全大写,其它的每个单词首字母采用大写其它的为小写。

命名时,尽可能采用英文单词或是英文单词缩写,有利于别人从命名得知此命名的用途和含

义。(不太常用的英文建议查阅电子字典)。

示例:

public struct TAG_ALLMESSAGE

public struct TAG_AllMessage

四、枚举类型定义规范

1) 命名规则:

用大小写字母表示

EU_Xxxxx以EU 打头,下划线后面定义类型名称

示例:

public enum EU_Message

五、常量定义规范

1) 全局使用常量

示例:

public const bool G_Trans_false = false;

2) 常量定义规范

大小写字母命名

G_XXX_YXX G表示全局,XXX标识常量用途,YYY标识具体的值

3) 局部使用常量(定义在每个Class 的前面)

示例:

public const int L_Priority_Lowest = 0

六、变量定义规范

1) 变量定义原则

变量定义的基本原则是:变量名=属性+类型+对象描述+自定义。

每一个变量定义尽量在函数、过程的开始处就进行定义,尽量避免在代码中不规则的穿插定

义。

七、函数返回值使用规范

避免使用结构体等复杂类型

使用bool类型:该函数只需要获得成功或者失败的返回信息时候

使用int 类型:错误代码用负数表示,成功返回0,建议使用此方式。

八、控件命名及使用规范

1、TextBox 命名:txtXxx 即控件类型+控件说明(使用说明,能能说明等) 如:

txtLoginUserName 可以知道,是一个登陆时用到的文本控件

2、Label 命名:lblXxx lblLoginError 可以知道,是登陆时错误提示的 Label 控件

3、ListBox 命名:lbXxx lbUserList 可以知道,是用来显示多个用户的ListBox控件

其他控件命名规范一次类推

九、定义实体类的规范

数据库有一个 Users 表 那么对应的实体类名:

public Class Users

{

//具体实现

}

在实体类中:私有变量定义格式如:

private int _UserID; UserID 是数据库表里面的字段

///

/// 用户编号

///

public int UserID

{

get{ return _UserID;}

set{ _UserID=value;}

}

十、数据库字段命名规范

DB_XXXX(数据库命名)、TB_DATABASE_XXXX(数据库表命名)、V_XXXX(视图命名)、

PROC_XXXX(存储过程命名) 其他按照所写规则或者头字母规则一次类推

类型+使用说明或者功能说明

如:DB_MARRY 一眼可以看出是:数据库名称 ,功能就是婚嫁数据库。

TB_MARRY_Users 是一个数据库的表:表属于 DB_MARRY 数据库

本文标签: 规范使用命名定义注释