C#编程规范C#常用命名规范Word格式.docx
《C#编程规范C#常用命名规范Word格式.docx》由会员分享,可在线阅读,更多相关《C#编程规范C#常用命名规范Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
//修改描述:
----------------------------------------------------------------*/
文件功能描述只需简述,具体详情在类的注释中描述。
创建标识和修改标识由创建或修改人员的拼音或英文名加日期组成。
如:
一天内有多个修改的只需做一个在注释说明中做一个修改标识就够了。
在所有的代码修改处加上修改标识的注释。
代码编写规范
换行
当一行中的代码过长影响美观时,需要换行,请遵循以下规则进行
1、在逗号后换行。
2、在操作符前换行。
3、规则1优先于规则2。
当以上规则会导致代码混乱的时候自己采取更灵活的换行规则。
缩进
使用缩进是为了使代码有层次感提高代码的可阅读性;
使用缩进时请使用Tab(4个空格);
VisualStudio.Net设置:
工具->
选项->
文本编辑器->
C#->
制表符->
插入空格。
空行
空行是为了将逻辑上相关联的代码分块,以便提高代码的可阅读性。
在以下情况下使用两个空行
1、枚举和类的定义之间。
2、类与类的定义之间。
在以下情况下使用一个空行
1、方法与方法、属性与属性之间。
2、方法中变量声明与语句之间。
3、方法中不同的逻辑块之间。
4、注释与它注释的语句间不空行,但与其他的语句间空一行。
空格
在以下情况中要使用到空格
除了“.”之外,所有的二元操作符都应用空格与它们的操作数隔开。
一元操作符、++及--与操作数间不需要空格。
如
a+=c+d;
a=(a+b)/(c*d);
while(d++=s++)
{
n++;
}
PrintSize(“sizeis“+size+“\n”);
花括号-{}
1、左花括号“{”放于关键字或方法名的下一行并与之对齐。
if(condition)
publicintAdd(intx,inty)
2、左花括号“{”要与相应的右花括号“}”对齐。
3、通常情况下左花括号“{”单独成行,不与任何语句并列一行。
4、if、while、do语句后一定要使用{},即使{}号中为空或只有一条语句。
if(somevalue==1)
somevalue=2;
5、右花括号“}”后建议加一个注释以便于方便的找到与之相应的{。
while
(1)
if(valid)
}//ifvalid
else
}//notvalid
}//endforever
代码注释的规范
注释的原则
1、在编写代码时就注释,因为以后很可能没有时间这样做。
2、使用注释来解释代码的意图。
3、注释代码中不十分明显的任何内容。
4、修改代码时,总是使代码周围的注释保持最新。
5、在所有的代码修改处加上修改标识的注释。
6、为了是层次清晰,在闭合的右花括号后注释该闭合所对应的起点。
namespaceCcn.Procument.Web
{
}//namespaceCcn.Procument.Web
文档型注释
该类注释采用.Net已定义好的Xml标签来标记,在声明接口、类、方法、属性、字段都应该使用该类注释,以便代码完成后直接生成代码文档,让别人更好的了解代码的实现和接口。
如:
///<
summary>
///用于根据输入的产品编号获取产品信息
/summary>
paramname="
strProNo"
>
输入参数:
产品编号<
/param>
dtProduct"
输出参数:
产品信息的集合<
returns>
返回值:
符合条件的记录数<
/returns>
history>
2010.12.09wlj创建
///2010.12.17wlj修改(修改原因)
///<
/history>
publicintGet_ProductInfo(stringstrProNo,outDataTabledtProduct)
单行注释
该类注释用于方法内的代码注释。
如变量的声明、代码或代码段的解释。
注释示例:
IntiResult=0;
//返回值-存储查询到的符合条件的记录数
if(表达式==1)//当表达式为1时执行的操作
{
}//当表达式为1时执行的操作
/*
如果要注释的代码块行数较多,可以使用下面的方法
*/
#region当表达式为1时执行的操作
if(表达式==1)
//用于取得***信息
thesourcecode;
#endregion
多行注释
该类注释用于不再使用的代码、临时测试屏蔽的某些代码。
用法
/*
[修改标识]
[修改原因]
...(thesourcecode)
*/
修改代码时的注释:
1、要在被修改方法的注释中加入修改的描述
2、在方法中修改时把修改日期和修改人进行标注
///2010.12.17wlj修改(根据客户XX年XX月XX日的XXXXXXX的要求,增加产品所属部门的显示)
//2010.12.17wljeditstart根据客户XX年XX月XX日的XXXXXXX的要求,增加产品所属部门的显示
//strSelectSql=“selectproid,pronamefromt_productwhereproid=‘+strProNo+’”;
strSelectSql=“selectdeptname,proid,pronamefromt_proinfopro,t_deptinfowheredept.deptid=pro.deptidandproid=‘+strProNo+’”;
//2010.12.17wljeditend
代码声明规范
一行只作一个声明,能做初始化的建议在变量声明时就对其做初始化。
命名规范
变量及参数的命名遵守Camel大小写;
数据类型简写对照表:
数据类型
数据类型简写
标准命名举例
Array
arr
arrShoppingList
Boolean
bln
blnIsPostBack
Byte
byt
bytPixelValue
Char
chr
chrDelimiter
DateTime
dtm
dtmStartDate
Decimal
dec
decAverageHeight
Double
dbl
dblSizeofUniverse
Integer
int
intRowCounter
Long
lng
lngBillGatesIncome
Object
obj
objReturnValue
Short
shr
shrAverage
Single
sng
sngMaximum
String
str
strFirstName
常量的命名:
所有单词大写,多个单词之间用"
_"
隔开。
如
publicconststringPAGE_TITLE="
Welcome"
;
集合的命名建议在后面使用“s”;
控件的命名规范:
命名方法
遵守Camel大小写(控件名简写+英文描述,英文描述首字母大写)
主要控件名简写对照表:
控件类型
简写
示例
Label
lbl
lblHelpMessage
Button
btn
btnSearch
ImageButton
imgbtn
imgbtnSearch
ListBox
lst
lstPolicyCodes
DataList
dl
dlPublisher
CheckBoxList
chkls
chklsAllIcons
RadioButtonList
rbtnls
rbtnlsAllIcons
Panel
pnl
pnlProductInfo
TextBox
txt
txtLastName
RichTextBox
rtf
rtfReport
LinkButton
lnkbtn
lnkbtnSearch
DropDownList
ddl
ddlStartDate
DataGrid
dg
dgProduct
CheckBox
chk
chkReadOnly
RadioButton
rbtn
rbtnClass
Image
img
imgBackGround
ProgressBar
prg
prgLoadFile
StatusBar
sta
staDateTime
TrackBar
trb
trbRegion
Table
tbl
tblDepartment
TabStrip
tab
tabOptions
Toolbar
tlb
tlbActions
Splitter
spt
sptTest
TreeView
tre
treOrganization
Form
frm
frmEntry
名称空间的命名规范:
名称空间遵守Pascal大小写
命名名称空间时的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示。
CompanyName.TechnologyName[.Feature][.Design](TechnologyName指的是该项目的英文缩写,或软件名。
)
namespaceCcn.Procurement
namespaceCcn.Procurement.DataRules
类的命名规范:
遵守Pascal大小写,用名词或名词短语命名类.
publicclassFileStream
接口的命名规范;
1、用名词或名词短语,或者描述行为的形容词命名接口。
例如,接口名称IComponent使用描述性
名词。
接口名称ICustomAttributeProvider使用名词短语。
名称IPersistable使用形容词。
2、遵守Pascal大小写。
3、给接口名称加上字母I前缀,以指示该类型为接口
publicinterfaceIServiceProvider
publicinterfaceIFormatable
方法的命名规范:
1、使用动词或动词短语+”_”+方法描述命名方法。
2、使用Pascal大小写。
3、以下是正确命名的方法的实例。
Remove_All()
Get_CharArray()
Invoke()
编程规范考核
1、
2、项目负责人负责在项目期间对开发人员的编程规范进行监督并在发现有不符合编程规范时及时提醒开发人员进行纠正;
3、开发结束并上线后一周内,项目负责人负责将项目进行归档(归档到48服务器),并填写源代码及文档归档记录表;
测试人员在项目测试期间可对开发人员的编程规范及项目的归档情况进行监督,当发现有不符合规范的对其进行邮件提醒,对同一开发人员连续三次提醒仍没有纠正者,可进行上报情况由上级记录入考核不合格表中(部门经理在项目期间对项目进行抽查,当抽查后发现不符合规范时,直接记入考核不合格表中);
对于编码安全性的规范:
依据前段时间公司聘请的专业安全公司对我们技术部开发的程序进行安全检测后给给出的建议:
1.口令强度:
在中商以前及近期开发的系统中都没有对系统账户口令强度问题进行重视,这样就会给很多不法人员留下可利用的漏洞,通过猜密码的方式登录系统后台再通
过图片、文件上传功能上传伪装木马文件进行破坏。
建议参考大型网站在注册账户时对账户口令强度进行判断(长度限制,数字字母混合等),如不能满足要求不允许注
册,口令强度增大后为了避免客户密码遗忘可增加通过邮件或短信密码找回功能。
2.上传检测:
目前发现最多的是木马文件伪装成图片的方式,但是这种伪装也是有迹可循的,例如仅仅是文件后缀是图片格式(gif,jpg等),但是图片的尺寸都
是0,因此建议是否可在文件上传时增加一层判断,对上传文件进行审核,避免异常文件的上传。
我们采取的措施:
1、新建一个密码强度验证组件(只在注册时使用),该组件实现对帐户的口令强度的验证(密码长度不小于10位,密码必须为数字字母混合);
(可开发一个公司通用的组件,可以shell为起点对其进行实现)
密码必须经过md5加密后才能存储进数据库;
●对于B/S架构的项目在注册时,必须提供手机号;
当客户遗忘密码后,可通过确认用户名及手机号后才能进入修改密码页面(此页面不需要输入原先密码);
●B/S架构的项目,当客户遗忘密码后,可通过输入用户名及手机号后,下发重置密码(默认密码)至手机号的功能;
●B/S管理页面中,需提供修改密码功能的页面,此页面必须要输入原密码后才能更改密码;
对于C/S架构的项目,须在管理页面提供重置密码(默认密码)的功能;
C/S架构的项目,需对登录用户提供修改密码的功能,需要输入原先的密码;
2、对于上传的检测,在上传界面中的文件选择中只允许上传本项目中使用到的文件格式的后缀名,并且对于后缀名为图片格式的文件(例如:
gif\jpg\bmp\等),需要验证其图片的尺寸是否大于零;
以上两点是我们在开发中需要注意到的地方,必须在开发中进行落实,随着安全检测的深入,对于编程中的安全措施会不断补充;