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

二、注释规范

  1. 文件头注释

/******************************************************************

* 版权:

* 功能描述:

* 创建时间:

* 作者:

* 版本:

* 修订描述:

* 最后修订日期:

******************************************************************/

三、编码准则

  1. 避免过长的方法,方法体应该少于60行。
  2. 避免使用诸如0,1,2之类的字面状态量,应该使用更有表达意义的const变量或枚举来取代。
  3. 拒绝代码冗余,冗余是代码腐化的根源。
  4. 坚持单一职责原则,一个类只因有一个变化的原因。

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很必要。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。