DotNet命名规范参考(转)
来自:http://www.cnblogs.com/w-y-f/archive/2012/05/30/2526254.html
DotNet命名规范参考
一、命名规范
注意事项:使用英文命名规则,尽量不使用缩写,禁止使用下划线
1. DotNet专属对象命名规范:
- 此命名规范规定了DotNet中专属的各类语言元素的命名规范:
- Pascal:命名空间、类、方法、委托、属性、结构、接口、常量变量均使用Pascal命名规范。
- Camel:私有成员、局部变量、参数、页面控件变量均使用Camel风格。
- 文件名和类名要匹配。
- 当类只用于作为其他类的基类,根据情况,以Base结尾。 Class CarBase
- 接口需在添加第一个字母I表示其是个接口。
- 成员变量与其对应的属性的差别只在于第一个字母的大小写。
- 命名空间使用以下格式:CompanyName.SolutionName.ProjectName[.ModuleName]
2. Javascript、CSS、Html命名规则
- 此命名规范规定了javascript、css中专属的各类语言元素的命名规范:
- Pascal:js类名使用Pascal风格。
- Camel:js变量、js参数、js函数、css类名、html标签ID、Html标签均使用Camel风格。
- js私有变量需加下划线前缀进行标注。
3. SqlServer数据库命名规则
- 此命名规范规定了SqlServer中专属的各类元素的命名规范:
- Pascal:就名字本身而言,数据库、表、视图、存储过程、自定义函数、自定义数据类型、触发器均使用Pascal风格。但部分命名需加前缀的下面已给出。
- 视图名使用小写字母v为前缀。
- 存储过程名使用小写字母usp为前缀。
- 自定义函数名使用小写字母ufn为前缀。
4.组织结构命名规范
- Pascal:DotNet解决方案、DotNet项目、DotNet专属文件、文件夹均使用Pascal风格。
- Camel:文件扩展名、js文件名、css文件名、图片文件名均使用Camel风格。
5. C#控件命名规范
Data Control
类 型 |
前 缀 |
示 例 |
AccessDataSource |
ads |
adsPubs |
DataList |
dlst |
dlstTitles |
DetailView |
dvw |
dvwTitles |
FormView |
fvw |
fvwFonts |
GridView |
gvw |
gvwCity |
ObjectDataSource |
ods |
odsMenus |
Repeater |
rpt |
rptQueryResults |
ReportViewer |
rvw |
rvwRecord |
SiteMapDataSource |
smds |
smdsSite |
SqlDataSource |
sds |
sdsBooks |
XmlDataSource |
xds |
xdsTitles |
Validation Control
类 型 |
前 缀 |
示 例 |
CompareValidator |
valc |
valcValidAge |
CustomValidator |
valx |
valxDBCheck |
RangeValidator |
valg |
valgAge |
RegularExpressionValidator |
vale |
valeEmail |
RequiredFieldValidator |
valr |
valrFirstName |
ValidationSummary |
vals |
valsFormErrors |
Navigation Control
类 型 |
前 缀 |
示 例 |
Menu |
mnu |
mnuUser1 |
SiteMapPath |
smp |
smpSite1 |
TreeView |
trvw |
trvwMenu |
Login Control
类 型 |
前 缀 |
示 例 |
ChangePassword |
cpwd |
cpwdUser1 |
CreateUserWizard |
cuw |
cuwLogin |
Login |
log |
logCenter |
LoginName |
logn |
lognUser |
LoginStatus |
logs |
logsUser |
LoginView |
logv |
logvUser |
PasswordRecovery |
pwdr |
pwdrUser |
WebParts Control
类 型 |
前 缀 |
示 例 |
AppearanceEditorPart |
paed |
paedPart1 |
BehaviorEditorPart |
pbed |
pbedPart2 |
CatalogZone |
zca |
zcatCity |
ConnectionsZone |
zcon |
zconDataBase |
DeclarativeCatalogPart |
pdca |
pdcaPart1 |
EditorZone |
zed |
zedNews |
ImportCatalogPart |
pica |
picaPart |
LayoutEditorPart |
pled |
pledNews |
PageCatalogPart |
ppca |
ppcaMail |
PropertyGridEditorPart |
ppge |
ppgeServer |
ProxyWebPartManager |
mpwp |
mpwpWeb |
WebPartManager |
mwp |
mwpSite1 |
WebPartZone |
zwp |
zwpSite2 |
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 |
WinForm Control 命名规范
数据类型 |
数据类型简写 |
标准命名举例 |
Label |
lbl |
lblMessage |
LinkLabel |
llbl |
llblToday |
Button |
btn |
btnSave |
TextBox |
txt |
txtName |
MainMenu |
mmnu |
mmnuFile |
CheckBox |
chk |
chkStock |
RadioButton |
rbtn |
rbtnSelected |
GroupBox |
gbx |
gbxMain |
PictureBox |
pic |
picImage |
Panel |
pnl |
pnlBody |
DataGrid |
dgrd |
dgrdView |
ListBox |
lst |
lstProducts |
CheckedListBox |
clst |
clstChecked |
ComboBox |
cbo |
cboMenu |
ListView |
lvw |
lvwBrowser |
TreeView |
tvw |
tvwType |
TabControl |
tctl |
tctlSelected |
DateTimePicker |
dtp |
dtpStartDate |
HscrollBar |
hsb |
hsbImage |
VscrollBar |
vsb |
vsbImage |
Timer |
tmr |
tmrCount |
ImageList |
ilst |
ilstImage |
ToolBar |
tlb |
tlbManage |
StatusBar |
stb |
stbFootPrint |
OpenFileDialog |
odlg |
odlgFile |
SaveFileDialog |
sdlg |
sdlgSave |
FoldBrowserDialog |
fbdlg |
fgdlgBrowser |
FontDialog |
fdlg |
fdlgFoot |
ColorDialog |
cdlg |
cdlgColor |
PrintDialog |
pdlg |
pdlgPrint |
WebControl 命名规范
类 型 |
前 缀 |
示 例 |
Adrotator |
adrt |
adrtTopAd |
BulletedList |
blst |
blstCity |
Button |
btn |
btnSubmit |
Calendar |
cal |
calMettingDates |
CheckBox |
chk |
chkBlue |
CheckBoxList |
chkl |
chklFavColors |
CompareValidator |
valc |
valcValidAge |
CustomValidator |
valx |
valxDBCheck |
DropDownList |
drop |
dropCountries |
DataGrid |
dgrd |
dgrdTitles |
DataList |
dlst |
dlstTitles |
RangeValidator |
valg |
valgAge |
FileUpLoad |
fup |
fupImage |
HiddenField |
hfld |
hfldName |
HyperLink |
hlk |
hlkDetails |
Image |
img |
imgAuntBetty |
ImageButton |
ibtn |
ibtnSubmit |
ImageMap |
imap |
imapSite |
Label |
lbl |
lblResults |
LinkButton |
lbtn |
lbtnSubmit |
ListBox |
lst |
lstCountries |
Literal |
ltl |
ltlTitle |
Localize |
loc |
locChina |
MultiView |
mvw |
mvwForm1 |
Panel |
pnl |
pnlForm2 |
PlaceHolder |
plh |
plhFormContents |
RadioButton |
rad |
radFemale |
RadioButtonList |
radl |
radlGender |
RegularExpression |
vale |
valeEmail_Validator |
Repeater |
rpt |
rptQueryResults |
RequiredFieldValidator |
valr |
valrFirstName |
SubStitution |
subs |
subsTime |
TextBox |
txt |
txtFirstName |
Table |
tbl |
tblCountryCodes |
TableCell |
tblc |
tblcGermany |
TableRow |
tblr |
tblrCountry |
ValidationSummary |
vals |
valsFormErrors |
View |
vw |
vwCity |
Wizard |
wiz |
wizRegister |
二、注释规范
- 文件头注释
/******************************************************************
* 版权:
* 功能描述:
* 创建时间:
* 作者:
* 版本:
* 修订描述:
* 最后修订日期:
******************************************************************/
三、编码准则
- 避免过长的方法,方法体应该少于60行。
- 避免使用诸如0,1,2之类的字面状态量,应该使用更有表达意义的const变量或枚举来取代。
- 拒绝代码冗余,冗余是代码腐化的根源。
- 坚持单一职责原则,一个类只因有一个变化的原因。
5. 缩进用 TAB,不用 SPACES。
6. 在每个运算符前后都空一格。
7. 花括弧 ( {} ) 需和括号外的代码对齐。每个花括弧需独立一行。
8. 用一个空行来分开代码的逻辑分组。
9. 在一个类中,各个方法需用一空行,也只能是一行分开。
10. 注释需和代码对齐。只在必需的地方注释。行数不多的注释会使代码看起来优雅。(前提是你的代码命名有意义和逻辑结构清晰)。
11. 如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。
12. 避免在同一个文件中放置多个类。
13. 避免使用大文件。如果一个文件里的代码超过500行,必须考虑将代码分开到不同类中。
14. 总是使用接口。避免只有一个成员的接口,努力保证一个接口有3~5个成员。当使用抽象类的时候,提供一个接口。
15. 一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。
16. 避免写超过5个参数的方法。如果要传递多个参数,使用结构。
17. 除了要在switch语句块中实现代码跳转,不要使用goto关键字。
18. 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。否则很难知道是哪个方法在什么时候修改了它的值。
19. 在最靠近一个局部变量被使用的地方声明该局部变量。
20. 避免 string name=””; 正确 string name=String.Empty;
21. 异常处理
- 错误消息而应给出具体错误消息和相应的用户需要做的操作。
- 千万不要捕捉了异常却什么也不做。异常信息要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
- 别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息如果应用程序需要,可以编写自己的异常类。对自定义的异常类加上后缀Exception。
- 不必每个方法都用try-catch。当特定的异常可能发生时才使用。不必在所有方法中捕捉一般异常。不管它,让程序崩溃。这将帮助你在开发周期发现大多数的错误。
- 数据库操作和文件操作时,finally很必要。
DotNet命名规范参考(转)的更多相关文章
- 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...
- web前端开发CSS命名规范参考
做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...
- CSS命名规范参考及书写注意事项
CSS书写顺序 *{ /*显示属性*/ display position float clear cursor … /*盒模型*/ margin padding width height /*排版*/ ...
- css 命名规范参考[转]
命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...
- CSS 命名规范及标题供参考与学习
一.CSS 命名规范 XHTML-CSS写作建议 所有的xhtml代码小写 属性的值一定要用双引号("")括起来,且一定要有值 每个标签都要有开始和结束,且要有正确的层次 空元 ...
- Java命名规范
驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...
- 浅谈Android编码规范及命名规范
前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...
- Android 命名规范 (提高代码可以读性)
android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...
- iOS开发(OC)中的命名规范
开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...
随机推荐
- Oracle 表三种连接方式(sql优化)
在查看sql执行计划时,我们会发现表的连接方式有多种,本文对表的连接方式进行介绍以便更好看懂执行计划和理解sql执行原理. 一.连接方式: 嵌套循环(Nested Loops (NL)) (散列)哈希 ...
- HDU4712+随机算法
随机算法 求n个20位的2进制串的MinDist. Dist:两个串的异或结果中1的个数 /* 随机算法 */ #include<algorithm> #include<iostre ...
- 跨域引入iframe 自适应高度
最近和别的公司合作一个项目,需要从他们那边引入一个页面,刚开始想的挺简单的,用iframe 引入就好啦,可是操作中才发现,自适应的问题不好解决,试了挺多办法,最终找到一个比较好的方法,记录一下,留着备 ...
- 用反射写自己的DataTable转为对应的Mod
之前写过类似的方法,今天做项目的时候又遇到了,以前的代码没有保存,导致又得重新写 场景:当我们定义自己的很多模型(Mods)的时候,而数据库读取出来的却是DataSet,DataTable类型的时候, ...
- BZOJ 1627: [Usaco2007 Dec]穿越泥地( BFS )
BFS... --------------------------------------------------------------------------------------- #incl ...
- 一致性算法--Raft
分布式一致性算法--Raft 前面一篇文章讲了Paxos协议,这篇文章讲它的姊妹篇Raft协议,相对于Paxos协议,Raft协议更为简单,也更容易工程实现.有关Raft协议和工程实现可以参考这个链接 ...
- UNIX 缩写风格
构建于图形界面之上的操作系统,使用鼠标作为主输入设备, 是否使用缩写并不重要.比如 Windows 系统中的目录,几乎都是全称…… 点击两次鼠标进入文件夹 pf, 并不意味着点击13次才能进入文件夹 ...
- 依赖于设备的位图(DDB) ,CreateCompatibleBitmap用法
DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是25 ...
- splice()函数的使用方法
splice()函数的使用方法,这是一个拗口的函数.用起来有点麻烦.图3所看到的是splice函数的功能.将一个列表插入到还有一个列表其中.list容器类定义了splice()函数的3个版本号: sp ...
- apache2.4.x三种MPM介绍
三种MPM介绍 Apache 2.X 支持 ...