C#编程规范

来源:互联网 发布:js学习资料 编辑:程序博客网 时间:2024/04/30 10:57

仅限本公司内部使用,请勿转载!


1. 适用范围

本规范适用于本公司所有的C#源代码,为提高代码质量和提升工作效率,请严格遵守。

2. 规范说明

本规范中的建议分为四种:建议不要避免表示需要遵循的级别。

:描述必须遵循的规范。

建议:描述在一般情况下应该遵循的规范,但如果完全理解规范背后的道理,并有很好的理由不遵循它时,也不畏惧打破常规,需注释。

不要:描述绝不应该违反的规范。

避免:一般情况下应该遵循,但有很好的理由时也可以打破,需注释。

3. 代码组织与风格


3.1. 缩进

 要使一个代码块内的代码都统一缩进一个Tab长度(4个空格)。

3.2. 空行

● 在下列情况之间建议有一行空行:

方法之间;

局部变量和它后边的语句之间;

方法内的功能逻辑部分之间;

3.3. {,}

● 开括号“{”放在块的所有者的下一行,单起一行;

● 闭括号“}”单独放在代码块的最后一行,单起一行。

3.4. 表达式和语句

● 每行建议只有一条语句。

● if-else,if-elseif语句,for语句,while语句,swith语句,try-catch语句,任何情况下,都应该有“{”,“}”,格式如下:

if (IsTrue){state;}else{stop;}

4. 代码修改及注释

● 注释的长度避免超过屏幕宽,换行后的代码应该缩进一个Tab;

● 不要删除别人的注释。

4.1. 新增及注释

● 新增类,函数等,建议注释在首行,新增块另起一行。注释包含如下:

//创建人,创建版本,创建目的

● 新增公有变量,委托,建议注释在变量尾,格式如下:

int m = 4 ; // 变量意义

● 对于已有类似功能的代码,建议不要重复添加。

4.2. 删除及注释

● 删除自己的代码:如其他人未修改过可直接删除,否则不要直接删除,需注释掉或与修改人明确说明后方可删除;

● 删除别人的代码:可注释掉,不要直接删除;

● 对于自己写的代码和注释,确定不会再使用的建议及时清除。

4.3. 修改及注释

● 对公有变量的写操作注释说明写操作目的;

● 对局部变量的写操作如果是自己定义的可不用说明,如果是别人定义的注释说明写操作目的。

5. 代码写作原则


5.1. 代码优化原则

● 在保证功能完整的情况下,建议代码优化级别由高至低如下:运行速率高、内存占用少、代码简洁;

● 避免不必要的循环语句和条件语句。

● 函数代码避免超过100行。

5.2. 避免异常原则

● 写代码要考虑全局,请不要为完成当前功能而引发其他部分异常或失效;

● 代码建议保持功能块的独立,请尽量避免附加其他功能块的条件限制,如必需使用,需加详细注释;

● 代码不要做无任何依据的主观条件限制;

● 代码不要仅局限于理想情况的正常使用,应尽量考虑程序运行中可能遇到的异常并建议进行相关处理。

6. 命名


6.1. 基本命名约定

● 使用完整的英文描述符,如firstName;

● 变量用下划线,与硬件相关的定义除外;

● 对于已有相同或相似含义的公有变量,重复定义,已有直接数量关系的变量,应避免重复定义;

● 采用大小写混合,具体规则见6.2、6.3。

6.2. 标识符大小写规则

标识符

示例

命名空间

namespace Com.Techstar.ProductionCenter

类型

public class DevsList

方法

public void UpdateData()

私有字段

private string fieldName;

非私有字段

public string FieldName

常量

Private const double FIRSTNAME=1.0;

参数

public void UpdateData(string fieldname)

局部变量

string fieldname;



6.3. 组件名称缩写及大小写规则

● 如果控件名有多个单词,取各单词首字母组合作变量名首部,第一个字母大写;

● 如果控件名只有一个单词,取除元音字母(a、e、i、o、u)外的其它字母组合作变量名首部,第一个字母大写;

  

组件类型

缩写

例子

Label

Lbl

LblNote

TextBox

Txt

TxtName

Button

Btn

BtnOK

ImageButton

Ib

IbOK

LinkButton

Lb

LbJump

CheckBox

Cb

CbChoice

CheckBoxList

Cbl

CblGroup

RadioButton

Rb

RbChoice

RadioButtonList

Rbl

RblGroup

Timer

Tmr

TmrUpdate

Image

Img

ImgBeauty

Panel

Pnl

PnlTree

ComboBox

Cb

cbList



7. 建议

建议(请注明理由)

提交人

提交时间

处理结果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0