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)中的命名规范
开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...
随机推荐
- 如何判断一个变量是数组Array类型
在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...
- tomcat的集群配置
配置环境需要:1.Apache服务器,下载地址:http://httpd.apache.org/download.cgi#apache22 2.tomcat6.0或者tomcat7.0,(集群中tom ...
- 在 Android 中 Intent 的概念及应用
一.显式Intent: startActivity(new Intent(MainActivity.this, 类名.class)); 二.隐式Intent: 1.在AndroidManiFest ...
- ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)
ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...
- Objects
Obeject Object Object representation and value representation Subobjects Polyomrphic objecets Alignm ...
- linux 下dd命令直接清除分区表(不用再fdisk一个一个的删除啦)
分区表是硬盘的分区信息,要删除一个硬盘的所有分区表很麻烦的,需要fdisk一个一个的删除,其实dd命令可直接清除分区信息,当然,这也是linux给root用户留下的作死方法之一.dd 命令主要参数如下 ...
- python Unable to find vcvarsall.bat 错误
今天遇到了这个方面的问题,目前找到两种办法.一种是换编译器如mingw,另一种是装vc.第一种方法没成功,现在正在等第二种. 第一种: 首先安装MinGW: 把MinGW的路径添加到环境变量path中 ...
- gcc编译4个阶段
gcc的编译流程分为四个步骤,分别为:· 预处理(Pre-Processing) -E· 编译(Compiling) -S· 汇编(Assembling) -c· 链接 ...
- android -- 蓝牙 bluetooth (三)搜索蓝牙
接上篇打开蓝牙继续,来一起看下蓝牙搜索的流程,触发蓝牙搜索的条件形式上有两种,一是在蓝牙设置界面开启蓝牙会直接开始搜索,另一个是先打开蓝牙开关在进入蓝牙设置界面也会触发搜索,也可能还有其它触发方式,但 ...
- Send Mail 网址
http://www.codeproject.com/Tips/371417/Send-Mail-Contact-Form-using-ASP-NET-and-Csharp http://www.c- ...