C#代码开发命名规范示例.docx
《C#代码开发命名规范示例.docx》由会员分享,可在线阅读,更多相关《C#代码开发命名规范示例.docx(16页珍藏版)》请在冰豆网上搜索。
C#代码开发命名规范示例
代码开发命名规范拟稿
该规范的制定致力于规范代码格式,提高开发效率,保证程序质量,最终解释权归*********软件开发组。
1.项目名称及类库命名规范
项目名称:
Testlatform,简写Test
实体类类库命名:
Test.Model
业务逻辑类类库命名:
Test.BLL
数据工厂类类库命名:
Test.DALFactory
数据库帮助类类库命名:
Test.DBUtility
数据接口类类库命名:
Test.IDAL
数据访问层类类库命名:
Test.SQLServerDAL
常用帮助类类库命名:
Test.Utils
表现层类库命名:
Test.UI
2.数据库名称及字段命名规范
1)数据库命名
数据库命名:
同项目名称简写(Test)
2)实体(表)命名
规则:
[前缀]_[表存储内容简称]
举例:
Sys_User【系统用户表】
Sys_Role【角色表】
3)属性(列)命名
规则:
[前缀]+[列存储内容简称]
举例:
UserID【用户编号】UserID
RoleName【角色名称】
4)视图命名:
规则:
视图以V作为前缀,其他命名规则和表的命名类似;
命名应尽量体现各视图的功能。
举例:
V_GetUserLogInfo【获取用户的登录信息】
5)触发器的命名
规则:
触发器以TR作为前缀,触发器名为相应的表名加上后缀,Insert触发器加"_I",Delete触发器加"_D",Update触发器加"_U",
举例:
TR_User_I【添加用户时激发】
6)存储过程命名
规则:
存储过程应以"UP_"开头,和系统的存储过程区分,后续部分以存储过程内容加存储过程的动作构成(参考动软代码生成器生成存储过程的规则),并用下划线分割各个组成部分。
举例:
UP_Sys_User_Update【更新系统用户信息】
7)变量命名
规则:
变量名采用小写,若属于词组形式,用下划线分隔每个单词,
举例:
@my_err_no。
8)命名中其他注意事项
a.以上命名都不得超过30个字符的系统限制。
变量名的长度限制为29(不包括标识字符@)。
b.数据对象、变量的命名都采用英文字符,禁止使用中文命名。
绝对不要在对象名的字符之间留空格。
c.小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
d.保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。
假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
3.项目代码命名规范
1)ADO.NET命名规范
注释:
动软代码生成器生成的逻辑代码除外。
数据类型
数据类型简写
标准命名举例
Connection
con
conNorthwind
Command
cmd
cmdReturnProducts
Parameter
parm
parmProductID
DataAdapter
dad
dadProducts
DataReader
dtr
dtrProducts
DataSet
dst
dstNorthWind
DataTable
dtbl
dtblProduct
DataRow
drow
drowRow98
DataColumn
dcol
dcolProductID
DataRelation
drel
drelMasterDetail
DataView
dvw
dvwFilteredProducts
2)WebControl命名规范
Web控件名
简写
标准命名举例
AdRotator
adrt
adrtExample
Button
btn
btnSubmit
Calendar
cal
calMettingDates
CheckBox
chk
chkBlue
CheckBoxList
chkl
chklFavColors
CompareValidator
valc
valcValidAge
CustomValidator
valx
valxDBCheck
DataGrid
dgrd
dgrdTitles
DataList
dlst
dlstTitles
DropDownList
drop
dropCountries
HyperLink
lnk
lnkDetails
Image
img
imgAuntBetty
ImageButton
ibtn
ibtnSubmit
Label
lbl
lblResults
LinkButton
lbtn
lbtnSubmit
ListBox
lst
lstCountries
Panel
pnl
pnlForm2
PlaceHolder
plh
plhFormContents
RadioButton
rad
radFemale
RadioButtonList
radl
radlGender
RangeValidator
valg
valgAge
RegularExpression
vale
valeEmail_Validator
Repeater
rpt
rptQueryResults
RequiredFieldValidator
valr
valrFirstName
Table
tbl
tblCountryCodes
TableCell
tblc
tblcGermany
TableRow
tblr
tblrCountry
TextBox
txt
txtFirstName
ValidationSummary
vals
valsFormErrors
XML
xmlc
xmlcTransformResults
3)HTML控件命名规则
HTML控件名
简写
标准命名举例
HtmlAnchor
hah
hahUserDetial
HtmlButton
hbtn
hbtnConfirm
HtmlForm
hform
hformFromUser
HtmlGenericControl
hgc
HtmlImage
himg
himgHeader
HtmlInputButton(按钮)
hbbtn
hbbtnButton
HtmlInputButton(重置)
hrbtn
hrbtnReset
HtmlInputButton(提交)
hcbtn
hcbtnSubmit
HtmlInputCheckBox
hick
hickSelectAll
HtmlInputFile
hifile
hifileUploadFile
HtmlInputHidden
hihid
hihidUserID
HtmlInputImage
hiimg
hiimgUserUpdate
HtmlInputRadioButton
hirb
hirbSelectUser
HtmlInputText(密码)
hipwd
hipwdUserPass
HtmlInputText(文本)
hitxt
hitxtUserName
HtmlSelect
hslt
hsltUser
HtmlTable
htab
htabHeader
HtmlTableCell
htc
htcUserName
HtmlTableRow
htr
htrTitle
HtmlTextArea
htxta
htxtaNotes
4)常量、变量名及类名命名规范
a.常量命名
规则:
大写英文字母加下划线
举例:
PRICE,MARKET_PRICE
b.变量命名
变量类型
类型简写
标准命名举例
Array
arr
arrShoppingList
Boolean
bln
blnIsPostBack
Byte
byt
bytPixelValue
Char
chr
chrDelimiter
DateTime
dtm
dtmStartDate
Decimal
dec
decAverageHeight
Double
dbl
dblSizeofUniverse
Guid
gu
guUserID
Integer
int
intRowCounter
Long
lng
lngBillGatesIncome
Object
obj
objReturnValue
Short
shr
shrAverage
Single
sng
sngMaximum
String
str
strFirstName
c.类命名
1、类名命名:
以该类的具体用途命名该类类名,全英文构成,单个单词首字母大写,组合单词每个单词首字母大写,其它字母小写,例如:
UserInfo,ProductDetails。
2、顶级命名空间命名:
例如:
Test。
3、类库名空间命名:
“Test”+“.”+类库名,例如:
Test.BLL。
4、类名空间命名:
“Test”+“.”+类库名+类名,例如:
Test.Model.DeptInfo。
5)CSS命名规范
样式表文件名命名规则,全英文构成,单个单词首字母大写,组合单词每个单词首字母大写,其它字母小写,并以“Style”结尾,前面组合单词指明该样式表的用途,例如:
HomePageStyle,表示应用于主页的全局样式表;ProudctListStyle,表示应用于产品列表的样式表。
a.CSS常用命名规范
头:
header
内容:
content/container
尾:
footer
导航:
nav
侧栏:
sidebar
栏目:
column
页面外围控制整体布局宽度:
wrapper
左右中:
leftrightcenter
登录条:
loginbar
标志:
logo
广告:
banner
页面主体:
main
热点:
hot
新闻:
news
下载:
download
子导航:
subnav
菜单:
menu
子菜单:
submenu
搜索:
search
友情链接:
friendlink
页脚:
footer
版权:
copyright
滚动:
scroll
内容:
content
标签页:
tab
文章列表:
list
提示信息:
msg
小技巧:
tips
栏目标题:
title
加入:
joinus
指南:
guild
服务:
service
注册:
regsiter
状态:
status
投票:
vote
合作伙伴:
partner
b.注释的写法
/*Footer*/
内容区
/*EndFooter*/
c.id的命名
(1)页面结构
容器:
container
页头:
header
内容:
content/container
页面主体:
main
页尾:
footer
导航:
nav
侧栏:
sidebar
栏目:
column
页面外围控制整体布局宽度:
wrapper
左右中:
leftrightcenter
(2)导航
导航:
nav
主导航:
mainbav
子导航:
subnav
顶导航:
topnav
边导航:
sidebar
左导航:
leftsidebar
右导航:
rightsidebar
菜单:
menu
子菜单:
submenu
标题:
title
摘要:
summary
(3)功能
标志:
logo
广告:
banner
登陆:
login
登录条:
loginbar
注册:
regsiter
搜索:
search
功能区:
shop
标题:
title
加入:
joinus
状态:
status
按钮:
btn
滚动:
scroll
标签页:
tab
文章列表:
list
提示信息:
msg
当前的:
current
小技巧:
tips
图标:
icon
注释:
note
指南:
guild
服务:
service
热点:
hot
新闻:
news
下载:
download
投票:
vote
合作伙伴:
partner
友情链接:
link
版权:
copyright
d.class的命名
(1)颜色:
使用颜色的名称或者16进制代码。
如
.red{color:
red;}
.f60{color:
#f60;}
.ff8600{color:
#ff8600;}
(2)字体大小,直接使用"font+字体大小"作为名称。
如
.font12px{font-size:
12px;}
.font9pt{font-size:
9pt;}
(3)对齐样式,使用对齐目标的英文名称。
如
.left{float:
left;}
.bottom{float:
bottom;}
(4)标题栏样式,使用"类别+功能"的方式命名。
如
.barnews{}
.barproduct{}
e.注意事项
1.一律小写;
2.尽量用英文;
3.不加中杠和下划线;
4.尽量不缩写,除非一看就明白的单词。
主要的MasterStyle.css
模块ModuleStyle.css
基本共用BaseStyle.css
布局,版面LayoutStyle.css
主题ThemesStyle.css
专栏ColumnsStyle.css
文字FontStyle.css
表单FormsStyle.css
补丁MendStyle.css
打印PrintStyle.css
4.代码书写格式规范
o文件之中不得存在无规则的空行,比如说连续十个空行。
一般来讲函数与函数之间的空行为2-3行。
o在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。
o每行长度尽量避免超过屏幕宽度,应不超过80个字符。
o使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。
如将 x=a*b/c*d写成x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。
o避免采用过于复杂的条件测试。
o避免过多的循环嵌套和条件嵌套。
o一个函数不要超过200行。
一个文件应避免超过2000行。
o不可以使用goto语句。
o避免采用多赋值语句,如x=y=z;。
5.代码注释规范
1).cs文件的注释
所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等
例如:
//********************************************************
//新增日期:
2004.7.19
//作者:
XXX
//內容说明:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//********************************************************
2)函数过程注释
所有的函数体开头都要加上注释,所以注释使用.NET注释规范。
例如:
///
///构造函数
///
///示例参数1
///示例参数2
publicUpgradeThread(stringis_xxx1,stringis_xxx2)
{
//…
}
3)常量变量注释
所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。
例如:
///
///当前线程指向的备份文件本地保存路径
///
publicstringstrStorePath='';
4)代码修改注释
当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息。
例如:
//BEGIN2004-7-19Jayson 修正了XXX问题
略…
//END2004-7-19Jayson
注释量化标准:
注释占代码量的10%及以上
附录一:
.NET中的命名规范
名称空间的命名
命名名称空间的一般规则如下:
CompanyName.TechnologyName
这样,我们看到的名称空间应该是这样的:
Microsoft.Office
PowerSoft.PowerBuilder
注意:
这只是一个原则。
第三方公司可以选择其它的名字。
避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。
例如:
将微软提供的Office自动类命名为Microsoft.Office
使用Pascal大写方式,用逗号分隔逻辑成分。
例如:
Microsoft.Office.PowerPoint
如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则。
例如:
NeXT.WebObjects
ee.cummings
类和类成分的命名
类的命名原则是用名词或名词短语命名类,使用Pascal大写。
减少类名中缩写的使用量。
不要使用任何类前缀(比如C),不要使用带下划线的字符。
例如:
publicclassFileStream{}
publicclassButton{}
publicclassString{}
变量的命名
名称中各单词首字母均为大写。
例如:
FindLastRecord
RedrawMyForm
在内部范围中避免使用与外部范围中的名称相同的名称。
若访问错误变量,则会产生错误结果。
若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。
例如:
若有一个名为date的变量,只能通过调用 System.Date 来使用内部 Date 函数。
函数和方法的命名
函数和方法的命名应该以动词开始,使用Pascal大写。
不要使用带下划线的字符。
例如:
InitNameArray
CloseDialog
接口命名原则
使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。
减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。
例如:
IComponent(描述性名词)
ICustomAttributeProvider(名词短语)
IPersistable(形容词)
参数的命名
使用描述性参数名。
参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。
根据参数的意思来命名参数,而不是根据参数的种类来命名。
我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。
但是偶尔使用根据类型命名的参数名也是完全可以的。
不要使用保留参数。
如果在下一个版本中需要更多的数据,可以增加进来。
例如:
TypeGetType(stringtypeName)
stringFormat(stringformat,object[]args)
属性的命名
用名词或名词短语命名属性,属性与类型要一样。
用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。
虽然听起来有些奇怪,但这是正确的。
例如:
publicenumColor{...}
publicclassControl{
publicColorColor{get{...}set{...}}
}
事件的命名
用EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。
Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。
要使用这个类型的正确的、特定的事件类。
例如:
publicdelegatevoidMouseEventHandler(objectsender,MouseEvente);
命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\\AfterXxx的方式)。
例如,可以被取消的结束事件就有Closing事件和Closed事件。
长项和常用项的命名
可使用缩写使名称长度适中,通常,多于32个字符的变量名在低分辨率的监视器上难以阅读。
同时,请确保缩写在整个应用程序中保持一致。
例如:
可以使用“HTML”代替“HyperTextMarkupLanguage”。