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)中的命名规范
开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...
随机推荐
- Linux虚拟机与外面系统ping不通,或者连不上网
很多其它具体文档:http://download.csdn.net/download/zml_2015/8843061 非常多人在做linux课程设计的时候,用的linux虚拟机与外面的系统ping不 ...
- BI商业智能项目中的若干风险要素
BI商业智能项目应在 “业务驱动,总体规划,统一设计,分期实施” 的总体设计原则下分期实施,采取Agile BI方法论迭代开展,先确保核心功能满足客户需求,在总体规划下不断完善整个系统,以提高可交付性 ...
- SSAS 发布报错处理方法 Login failed for user 'NT Service\MSSQLServerOLAPService' 28000
Create login and grant access: Open up SQL Server Management Studio [login to the database engine]&g ...
- UIAlertView笔记
链接地址:http://www.cnblogs.com/scandy-yuan/archive/2013/03/11/2954194.html 1. 最简单的用法 UIAlertView*alert ...
- java的for循环问题的解决,以及安卓中ListView插入数据的问题
package test.testdemo; import org.springframework.jdbc.core.JdbcTemplate; import com.util.Pub; publi ...
- HTML5 总结-Web存储-7
HTML 5 Web 存储 在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 ses ...
- Python网络编程——设定并获取默认的套接字超时时间
Sometimes,you need to manipulate the default values of certain properties of a socket library, for e ...
- python成长之路10
断点续传 python2.7 多继承 py35多继承 socketserver源码 支持并发处理socket i/o多路复用 上节回顾 socket ...
- struts ModelDriven
在表单提交的时候传值是这样,name=admin.username name=admin.password,然后在action中定义属性admin生成get和set 也可以实现ModelDriven这 ...
- UI 响应者链
响应者链 概念: 每一个应用有一个响应者链,我们的视图结构是一个N叉树(一个视图可以有多个子视图,一个子视图同一时刻只有一个父视图),而每一个继承UIResponder的对象都可以在这个N叉树中扮演 ...