宝桥科技C#编程规范.docx

上传人:b****4 文档编号:12228975 上传时间:2023-04-17 格式:DOCX 页数:17 大小:24.35KB
下载 相关 举报
宝桥科技C#编程规范.docx_第1页
第1页 / 共17页
宝桥科技C#编程规范.docx_第2页
第2页 / 共17页
宝桥科技C#编程规范.docx_第3页
第3页 / 共17页
宝桥科技C#编程规范.docx_第4页
第4页 / 共17页
宝桥科技C#编程规范.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

宝桥科技C#编程规范.docx

《宝桥科技C#编程规范.docx》由会员分享,可在线阅读,更多相关《宝桥科技C#编程规范.docx(17页珍藏版)》请在冰豆网上搜索。

宝桥科技C#编程规范.docx

宝桥科技C#编程规范

宝桥科技编程规范

[Version1.0.9.0225]

一、本规范版本变化1

二、概述1

三、版本号命名规则1

四、命名规范1

五、代码外观3

六、程序注释4

七、控件命名规则5

八、界面设计规范6

九、数据库命名规则(暂定)6

十、附录9

一、

本规范版本变化

Version1.0.9.0129yux完成

Version1.0.9.0130增加了数据库命名规则、界面设计规范。

Version1.0.9.0205数据库部分细节改动。

Version1.0.9.0225按钮命名细节改动。

二、概述

规范制定原则

1方便代码的交流和维护。

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

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

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

术语定义

Pascal大小写

将标识符的首字母和后面连接的每个单词的首字母都大写。

可以对三字符或更多字符的标识符使用Pascal大小写。

例如:

BackColor

camel大小写

标识符的首字母小写,而每个后面连接的单词的首字母都大写。

例如:

backColor

三、版本号命名规则

版本号分为4段,前两段为主版本号和辅版本号,定义了软件的版本。

第3段为设定版本时的年份,2009年及以前为一位数字,2010年以后为两位数字。

第4段为设定版本时的日期,用4位数字表示,如0129表示1月29日

如1.0.9.0129,含义为版本1.0,2009-1-29最终发布。

四、命名规范

1、命名规则

命名时尽可能使用英文的全称,尤其是类名和接口名。

命名时尽可能不用下划线,除非全部大写。

命名时少用s,如使用user而不要用users,集合除外。

在面向对象的语言中,在类属性的名称中包含类名是多余的,如不应该使用Book.BookTitle。

而是应该使用Book.Title。

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

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

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

或者写清楚注释。

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

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

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

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

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

如ApplicationException是从名为Exception的类派生的类。

接口开始字母一定为大写的I,而后跟随Pascal方式的接口名,如IPersistable。

而IdentityStore也是合适的类名或其它名称,因为并不会混淆。

对于参数,不需要添加str或int等前缀后缀,而应该使用可以描述参数意义的名称。

例如:

stringFormat(stringformat,args()Asobject)

Public的字段用Pascal命名方式,而private,protect字段用camel命名。

属性的命名尽可能与对应的字段同名,用大小写来区分。

集合的命名时,尽可能使用复数。

2、大小写规则

基本原则:

内部封装起来的私有字段、参数、变量为camel命名方法,其它的为Pascal命名方法。

常数使用全部大写字母,单词之间使用下划线分隔。

常用计算机通用单词缩写可写成大写,如IO,UI,TCP,CRM等。

标识符

大小写

示例

常数

全部大写

NUM_DAYS_IN_WEEK可以使用下划线分隔

Pascal

AppDomain

枚举类型

Pascal

ErrorLevel

枚举值

Pascal

FatalError

事件

Pascal

ValueChange

接口

Pascal

IDisposable注意总是以I前缀开始。

方法

Pascal

ToString

命名空间

Pascal

System.Drawing

属性

Pascal

BackColor

公共字段

Pascal

RedValue

注意很少使用。

属性优于使用公共实例字段。

只读静态字段

Pascal

RedValue

私有字段

camel

redValue

参数

camel

typeName

方法内的变量

camel

backColor

3、DotNet中的关键字尽可能不要用作变量名

详见附录,虽然多数为的关键字,但考虑到.net框架的通用性,建议尽量不用。

五、代码外观

1、列宽

代码列宽控制在110字符左右,也就是大约屏幕的4/3宽。

如果太长需要换行,则从第二行起向后缩进。

如:

stringinserString="InsertIntoTableName(username,password,email,sex,address)"

+"Values('张三','123546','123@','男','体育路11号')";

2、缩进

缩进应该是每行一个Tab(4个空格),按照VS2005环境的默认生成格式进行缩进。

3、空行

空行是为了将逻辑上相关联的代码分块,以便提高代码的可阅读性。

在以下情况下使用两个或更多空行

1、接口和类的定义之间。

2、枚举和类的定义之间。

3、类与类的定义之间。

在以下情况下使用一个空行

1、属性与属性之间、方法与方法之间。

2、属性、方法、字段相互之间。

3、方法中变量声明与语句之间。

4、方法中不同的逻辑块之间。

5、方法中的返回语句与其他的语句之间。

6、注释与它注释的语句间不空行,但与其他的语句间空一行。

4、花括号-{}

1、左花括号“{”放于关键字或方法名的下一行并与之对齐,同时与右花括号“}”对齐。

if(condition)

{

}

2、if、while、do语句后一定要使用“{}”,即使“{}”号中为空或只有一条语句,除非不加“{}”能提高程序的可读性。

if(someValue==1)

{

someValue=2;

}

5、代码块

在代码中点击右键——插入代码段——VisualC#。

(提示:

大多数情况下,输入关键字后按TAB键即可自动生成代码,如try+TAB)

与VS2005环境自动生成的代码块保持一致。

6、重构

多使用VS2005开发环境提供的代码重构功能:

例如在类的某一个字段上点击右键——重构——封装字段。

六、程序注释

1、原则

Ø每一个文件,每一个类,每一个类的public方法必须填写正确的注释。

Ø如果进行了修改,则在文件上方填写相应的修改信息,并在代码中注出修改的地方和修改的原因。

如果修改的是其它人的模块,则必须填写修改人的标识。

Ø修改代码时,总是使代码周围的注释保持最新。

Ø避免杂乱的注释,如一整行星号。

而是应该使用空白将注释同代码分开。

Ø避免在块注释的周围加上印刷框。

这样看起来可能很漂亮,但是难于维护。

Ø如果需要用注释来解释复杂的代码节,请检查此代码以确定是否应该重写它。

尽一切可能不注释难以理解的代码,而应该重写它。

尽管一般不应该为了使代码更简单以便于人们使用而牺牲性能,但必须保持性能和可维护性之间的平衡。

Ø在编写代码时就注释,因为以后很可能没有时间这样做。

另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。

Ø注释代码中不十分明显的任何内容。

Ø为了防止问题反复出现,对错误修复和解决方法代码总是使用注释,尤其是在团队环境中。

Ø对由循环和逻辑分支组成的代码使用注释,特别是循环边界条件的说明。

2、文件注释commFile

导入预定义好的commFile.snippet(参见附录)。

文件注释应该放在using段之后类之前

输入commFile,按TAB键

/*

*Copyright(C)宝桥科技版权所有

*

*创建标识:

[owne][20090101]

*

*文件功能描述:

[对此文件实现功能的描述]

*

*修改标识:

[修改人][日期]

*修改描述:

*

*/

3、类注释

在类的上方输入///,使用XML格式的文档说明。

例如

///

///根据进程名来判断当前程序运行的个数

///

publicstaticclassAppInstance

{……}

4、方法注释

在方法的上方输入///,使用XML格式的文档说明。

例如:

///

///读取INI文件中的值

///

///INI文件中的段

///INI文件中的键值

///返回字符串值,如果没有此值返回""空字符串

///

///strings=INIClass.INIReadValue("DataBase","Server")

///

publicstringINIReadValue(stringsection,stringkey)

{……}

方法中的每一个参数及返回值则必须写清楚用途,尤其是public的方法。

比较难以使用或难于理解的方法,需要使用标签来写下一个简单的使用范例。

七、控件命名规则

命名方法:

控件名简写+英文描述,英文描述首字母大写

Panel,Label等程序不操作的控件可以不命名,使用缺省名称。

下面是部分常用控件的缩写:

控件名

简写

Form

frm

Button

btn

CheckBox

chk

TextBox

txt

Label

lbl

ListBox

lst

ListView

lstv

ComboBox

cmb

DateTimePicker

dtp

Calender

cld

MonthCalendar

mcld

PictureBox

pic

Image

img

RadioButton

rdo

TreeView

tv

NumericUpDown

updn

Panel

pnl

MenuStrip

menu

ContextMenuStrip

cmenu

DataSet

ds

DataGridView

dgv

ImageList

imglst

ToolStrip

ts

ToolStripButton

tsb

八、命名空间(NameSpace)命名规范及项目组织形式

1、

九、界面设计规范

1、常用按钮/快捷键命名

按钮中文名

按钮名

快捷键

增加(A)

btnAdd

A

修改(E)

btnEdit

E

删除(D)

btnDel

D

保存(S)

btnSave

S

取消(C)

btnCancel

C

确定(O)

btnOk

O

应用(Y)

btnApply

Y

退出(X)

btnExit

X

关闭(C)

btnClose

C

一十、数据库命名规则(暂定)

所有数据库、表、字段、视图、存储过程等的标识命名,除了前缀外,全部遵守Pascal命名规则,而所有的前缀则全部小写。

禁止使用中文命名

1、数据库(Database)的定义

数据库名称=数据库内容标识

2、表(Table)的定义

命名应尽量反映存储的数据内容,并且尽可能不使用复数。

例如使用Product,而不是Products。

如果表名与SQL关键字冲突,考虑加上Tbl后缀。

例如:

UserTbl,而不是[User]

表名称=表名前缀+表内容标识

如ClientInfo相关联的一系的表以ci作为前缀,

即有表名:

ciHistory,ciContact,ciBusiness

3、列/字段(Field)的定义

列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。

例如:

AddressID

PostalCode

尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字母大写表示。

例如:

宁波Ningbo

经营方式JingYFS

主键一般可以命名为<表名>+ID,如Product表的主键命名名ProductID。

使用单数名称,而不是复数名称

4、视图(View)的命名

视图的名称="v"+视图内容标识

如:

vUserTbl

5、触发器名

触发类型

Insert

Delete

Update

触发标识

i

d

u

触发名="tr"+触发标识+相应的表名

如:

triClient,trdClient。

6、变量名

Pascal命名方式,如@EmployeeName。

7、其它命名规则(暂定)

内容

前缀

示例

存储过程[StoreProcedure]

pr

prDeleteTerminatedReps

用户函数[Function]

fn

fnGetPY

其它

如主键、索引等,暂不作要求

8、SQL语句的编写规范(简)

数据库中存储过程和触发器中涉及大量的SQL语句,对SQL语句的编写规范如下:

关键字大写:

在SQL语句的编写中,凡是SQL语句的关键字一律大写,如:

SELECT、ORDERBY、GROUPBY、FROM、WHERE、UPDATE、INSERTINTO、SET、BEGIN、END......

比较一下:

SELECTID,UserNameFROMUserTblWHEREID=5

selectID,UserNamefromUserTblwhereID=5

适当的缩进

准确而精炼的注释

9、常用字段命名

这里的常用字段是指在建表时频繁使用的表名或列名,下表对常用字段进行建议性定义,

列名称

数据类型

说明

CreatedDate

datetime

纪录创建日期,一般使用GETDATE()自动生成

ModifiedDate

datetime

纪录最后修改日期,首次使用GETDATE()

DeletedDate

datetime

记录删除(标记删除)日期

StartDate

datetime

开始日期

EndDate

datetime

结束日期

StartTime

datetime

开始时间

EndTime

datetime

结束时间

ID

int

使用ID而不是Id或id。

一般为自增长主键列

…Code

string

字符串类型的代码,如PostCode,ProductCode

RowGuid

uniqueidentifier

唯一标识行的ROWGUIDCOL号,用于支持合并复制

ParentID

int

父ID

Status

int

状态

一十一、附录

1、commFile.snippet

xmlversion="1.0"encoding="utf-8"?

>

Expansion

文件注释

commFile

关于本文件的注释说明

bqkjyux20090129

owner

创建人

[owne][20090101]

fileComment

文件功能描述

[对此文件实现功能的描述]

[CDATA[/*

*Copyright(C)宝桥科技版权所有

*

*创建标识:

$owner$

*

*文件功能描述:

$fileComment$

*

*修改标识:

[修改人][日期]

*修改描述:

*

*/]]>

2、DOTNET关键字列表

AddHandler

AddressOf

Alias

And

Ansi

As

Assembly

Auto

Base

Boolean

ByRef

Byte

ByVal

Call

Case

Catch

CBool

CByte

Cchar

CDate

CDec

CDbl

Char

Cint

Class

CLng

CObj

Const

Cshort

CSng

CStr

CType

Date

Decimal

Declare

Default

Delegate

Dim

Do

Double

Each

Else

ElseIf

End

Enum

Erase

Error

Event

Exit

ExternalSource

False

Finalize

Finally

Float

For

Friend

Function

Get

GetType

Goto

Handles

If

Implements

Imports

In

Inherits

Integer

Interface

Is

Let

Lib

Like

Long

Loop

Me

Mod

Module

MustInherit

MustOverride

MyBase

MyClass

Namespace

New

Next

Not

Nothing

NotInheritable

NotOverridable

Object

On

Option

Optional

Or

Overloads

Overridable

Overrides

ParamArray

Preserve

Private

Property

Protected

Public

RaiseEvent

ReadOnly

ReDim

Region

REM

RemoveHandler

Resume

Return

Select

Set

Shadows

Shared

Short

Single

Static

Step

Stop

String

Structure

Sub

SyncLock

Then

Throw

To

True

Try

TypeOf

Unicode

Until

volatile

When

While

With

WithEvents

WriteOnly

Xor

Eval

extends

instanceof

package

var

   

   

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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