代码书写规范V100C#Word文档格式.docx
- 文档编号:16953477
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:13
- 大小:21.61KB
代码书写规范V100C#Word文档格式.docx
《代码书写规范V100C#Word文档格式.docx》由会员分享,可在线阅读,更多相关《代码书写规范V100C#Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
k)
命名空间注释9
l)
类注释9
m)
类成员变量注释10
n)
方法注释10
o)
内部注释10
四.
代码页面布局规范11
p)
代码格式11
1)
缩进11
2)
折行11
3)
分区11
五.
代码书写规范11
六.数据库操作12
七.其它规定12
附录A:
名称空间申报表14
附录B:
常用控件命名规则15
附录C:
代码规范样例17
前言
为了方便本项目组成员之间的沟通与交流,增强系统设计过程的规范性,在此规定代码书写规范。
自此规范发布之日起后开展的项目,规范中强制性条款需要严格遵守。
规范在执行过程中如产生有争议的条款,通过会议讨论进行统一。
命名规则
命名空间命名规则
拼写规范
命名空间的名称拼写采用Pascal形式,首字母大写,其它字母小写。
大写单词首字母作为分隔,例如:
RailwayStation。
名称应当为能够表示中文意义的英文单词组成。
如果采用缩写,缩写字母必须使用大写方式。
除人名、地名外,不允许使用中文拼音。
命名空间的名字不能过长,原则上不超过20个字母。
命名空间划分
每一个项目只存在一个主命名空间,例如ESINT.XXX。
项目下的各个子项目的名称空间由各项目组自行定义,但必须在命名空间申报处申报,例如ESINT.XXX.Model命名空间。
如果项目组采用三层结构模式模型开发项目,则各层结构的名称空间必须以如下方式命名:
ESINT.XXX.DAL(数据访问层),ESINT.XXX.BLL(业务逻辑层),ESINT.XXX.Model(实体层),ESINT.XXX.Web(B/S表示层),ESINT.XXX.Utility(公用函数层),ESINT.XXX.Form(C/S表示层),“XXX”为各项目的名称.
严禁在项目中使用未申报的命名空间。
名称空间申报表结构见附录A
类命名规则
类名拼写采用Pascal形式,首字母大写,其它字母小写。
名称应当为能够表示中文意义的英文单词组成,尽量不使用缩写。
类名称应当为名词或者为形容词+名词。
除人名、地名外,尽量不使用中文拼音。
类名不能过长,原则上不超过20个字母。
书写规范
一个文件中(.cs文件)中只能包含一个类。
类成员变量命名规则
对于类私有成员变量名采用Camel拼写方式。
首字母为小写,名字前加“_”。
如:
privatestring_firstName;
类不能使用非私有的成员变量。
应当通过属性的方式对外公开内部成员。
d)控件命名规则
控件成员作为一个特例采用匈牙利命名法,前三位为缩写,常用缩写详见:
附录B
枚举和结构命名规则
枚举和结构采用Pascal拼写方式。
对于枚举类型,不仅枚举类型名采用Pascal拼写,枚举选项同样采用Pascal拼写。
例如:
publicenumCustormerType
{
Consumer,
Commercial
}
方法命名规则
方法采用Pascal拼写方式。
名称以英文单词组成。
采用动词或动词+名词的形式,动宾短语形式。
publicvoidExcute(),publicstringGetInvoiceNo()。
对于方法中的参数名,采用“类型缩写+Pascal”拼写方式,如:
publicstringGetInvoiceNo(stringstrProductName)。
参数如果为自定义类型则采用“obj+类名称”拼写方式,如:
publicstringGetInvoiceNo(UserobjUser)。
对于一些表示判断的方法应当使用这样的形式:
IsNumeric,HasDeleted,CanOpen。
采用Is、Can、Has前缀的方法必须以bool型作为返回值。
表示“是否为”,采用Is前缀。
IsNumeric。
表示“能否”,采用Can前缀。
CanOpen。
表示“取得”,采用Get前缀。
GetSystemTime。
表示“设置”,采用Set前缀。
SetSystemTime。
属性命名规则
采用Pascal拼写方式。
原则上与对应的私有成员的名称类似。
私有成员:
_firstName
属性:
publicstringFirstName
get{}
set{}
局部变量命名
方法内的局部变量采用“Camel”拼写方式,变量名前将不再标注变量类型缩写,但变量名必须要有明确的具体含义,如:
publicstringGetUserID(stringuserName)
stringuserID;
userID=””;
returnuserID;
使用for循环时,如果循环为嵌套循环,那循环变量从外自内依次定义为i,j,k,依此类推。
for(inti=0;
i<
5;
i++)
for(intj=0;
j<
j++)
for(intk=0;
k<
k++)
}
j)接口的命名
接口的名称加前缀I.
interface
ICompare
int
compare();
自定义的属性以Attribute结尾
public
class
AuthorAttribute
:
Attribute{}
注释书写规范
命名空间注释
对于命名空间不进行代码内注释。
类注释
对于公用类必须书写类注释,格式如下:
///<
summary>
///概述:
///作者:
///日期:
/summary>
类成员变量注释
必须符合下面的格式
privatestring_Name;
//成员概述
方法注释
paramname="
参数名"
>
参数描述<
/param>
returns>
返回值描述<
/returns>
内部注释
在逻辑代码的内部,在程序有循环、判断、声明等位置进行注释。
注释采用”//”方式,不采用”/**/”方式。
在逻辑代码块的上方进行块注释,被注释的逻辑代码块与其它代码之间需要有一行的空行分隔。
如果出现大量连续的注释行,要使用区块折叠起来,避免影响对代码的阅读。
代码页面布局规范
代码格式
代码整体上应当简明。
注意保持缩进,注意用空行分割逻辑代码单元。
原则上在下列位置应当加空行分隔:
字段声明部分结束,方法、属性之间,方法和方法之间,属性和属性之间,方法内部的逻辑代码块之间(例如两个if块之间)。
缩进
每个缩紧为4个字符宽度或一个TAB,必须使用TAB缩进。
折行
除方法、属性、事件的定义行外,其它行利用折行使得代码不能超过屏幕可视宽度。
分区
将同一种用途的代码划分为不同的region,每个分区根据不同用途写上注释。
1)
严禁使用GOTO语句。
严禁使用魔术数字而是使用枚举类型或常量表示特殊的含义。
3)避免采用多赋值语句,如x=y=z;
4)使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。
如将x=a*b/c*d写成x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。
5)文件之中不得存在无规则的空行,比如说连续十个空行。
一般来讲函数与函数之间的空行为1行;
6)在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行
7)尽量用公共过程或子程序去代替重复的功能代码段。
8)避免过多的循环嵌套和条件嵌套。
六.数据库操作
1)查找数据库表或视图时,只能取出确实需要的那些字段。
2)使用项目组统一的数据操作类,禁止个人自己使用不同的数据库操作类。
3)清楚明白地使用列名,而不能使用列的序号。
4)用事务保证数据的完整性。
七.其它规定
1)所有的成员变量声明在类的顶端,用一个换行把它和方法分开.
2)文件名要能反应类的内容,类名就是文件名。
3)目录结构中要反应出namespace的层次.
4)大括号"
{"
和”}”都要新起一行.
5)用C#预定义的类名,而不要用别名.
stringuserName;
而不是System.StringuserName;
intnumber;
而不是System.Int32;
6)始终使用"
{}"
包含if下的语句,即使只有一条语句.
7)switch语句一定要有default来处理意外情况.
名称空间申报表
项目编号
项目名称
主名称空间
ESINT.XXX
子名称空间
说明
ESINT.XXX.DAL
数据访问层
ESINT.XXX.BLL
业务逻辑层
ESINT.XXX.WEB
B/S表示层
ESINT.XXX.Model
业务实体类
常用控件命名规则
TextBox
txt_###
例:
txt_UserName
Button
btn_###
btn_UserName
Label
lbl_###
lbl_UserName
DropDownList
ddl_###
ddl_UserName
CheckBox
chk_###
chk_UserName
LinkButton
lbt_###
lbt_UserName
ImageButton
ibt_###
ibt_UserName
DataGrid
grd_###
grd_UserName
Panel
pnl_###
pnl_UserName
Calender
cld_###
cld_UserAge
CheckBoxList
cbl_###
chl_UserName
ListBox
lst_###
lst_UserName
asp:
HyperLink
hlk_###
hlk_UserName
RadioButton
rdo_###
rdo_UserName
RadioButtonList
rdl_###
rdl_UserName
Image
img_###
例:
img_UserName
ImageMap
igm_###
igm_UserName
BulletedList
btl_###
btl_UserName
HiddenField
hfd_###
hfd_UserName
Literal
ltl_###
ltl_UserName
Calendar
cad_###
cad_UserName
AdRotator
art_###
arr_UserName
FileUpload
fup_###
fup_UserName
Wizard
wzd_###
wzd_UserName
GridView
grv_###
grv_UserName
DataList
dtl_###
dtl_UserName
SiteMapPath
smp_###
smp_UserName
TreeView
tvw_###
tvw_UserName
Table
tab_###
tab_UserName
注:
input控件的命名在上述控件的命名前加“h_”作为前缀。
代码规范样例
类的定义方法
///<
///(T_Tsto_User的摘要说明。
)
///概述:
用户类,与T_Tsto_User表相对应,主要对该表进行增,删,改,查操作
///作者:
xxxx
///日期:
2006-07-1409:
52
publicclassT_Tsto_User_Info
//类名要于相对应的表名相同,以方便日后的阅读,修改
{
//为变量附值时,等号(“=”)前后都要有一个空格
publicconststringUserRoleNone="
0"
;
privatestring_Role;
//角色
//成员变量,名称定义,一定与对应的字段名相一致
publicT_Tsto_User_Info()
publicstringRole
get{return_Role;
set
{
_Role=value;
//属性名称定义,要于相对应的数据库表字段名称一致
publicstringUserName
get{return_UserName;
_UserName=value;
publicstringSex
get{return_Sex;
{
_Sex=value;
///<
///获得用户信息
userName"
用户名<
该用户信息集合<
publicDataTableGetAllUsersByUserName(stringuserName)
//DataTable,DataReader,DataSet定义的前缀为:
dt,dr,ds
DataTabledtUsers=newDataTable();
returndtUsers;
//定义方式为前缀+名称
///
age"
用户年龄<
role"
角色<
depID"
部门ID<
T_Tsto_User集合<
publicstaticT_Tsto_UserCollectionGetUsers(intage,stringrole,stringuserName)//参数之间要加空格
stringuserName="
"
//函数内部变量定义要加前缀注明类型
intintCount=22;
boolisThrough=false;
//bool型的前缀可以为is,can,has表是是否的条件关系
DataSetdsUsers=SqlHelper.ExecuteDataset(ConfigurationSettings.AppSettings["
Conn"
],"
ZK_Provider"
age,Convert.ToInt32(role),userName);
T_Tsto_UserCollectionobjT_Tsto_User_InfoCollection=newT_Tsto_User_InfoCollection();
//类的实例化为对象后,对象明的定义方法为obj+类名
foreach(DataRowdrUserindsUsers.Tables[0].Rows)
{
T_Tsto_User_InfoobjT_Tsto_User=newT_Tsto_User();
objT_Tsto_User.UserName=r["
UserName"
].ToString();
objT_Tsto_User.Role=r["
RoleID"
objT_Tsto_User.RoleName=r["
RoleName"
objT_Tsto_User.UserID=Convert.ToInt32(r["
UserID"
]);
objT_Tsto_UserCollection.Add(usr);
}
returnobjT_Tsto_User_InfoCollection;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 代码 书写 规范 V100C