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

DotNet命名规范参考(转)的更多相关文章

  1. 告别编码5分钟,命名2小时!史上最全的Java命名规范参考!

    简洁清爽的代码风格应该是大多数工程师所期待的.在工作中笔者常常因为起名字而纠结,夸张点可以说是编程5分钟,命名两小时!究竟为什么命名成为了工作中的拦路虎. 每个公司都有不同的标准,目的是为了保持统一, ...

  2. web前端开发CSS命名规范参考

    做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...

  3. CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor … /*盒模型*/ margin padding width height /*排版*/ ...

  4. css 命名规范参考[转]

    命名空间 另外最好的实践就是当命名你的类名的时候,使用命名空间前缀来进行分类.这些前缀会在你的命名前添加一组字符,但是这个值能立刻标记每一个类的目的,在你看 HTML 或者样式的时候是很需要的.我使用 ...

  5. CSS 命名规范及标题供参考与学习

    一.CSS 命名规范   XHTML-CSS写作建议 所有的xhtml代码小写 属性的值一定要用双引号("")括起来,且一定要有值 每个标签都要有开始和结束,且要有正确的层次 空元 ...

  6. Java命名规范

    驼峰法则: 将所有字母都小写(包括缩写),然后将单词的第一个字母大写. 每个单词的第一个字母都大写,来得到大驼峰式命名. 除了第一个单词,每个单词的第一个字母都大写,来得到(小)驼峰式命名. 为避免歧 ...

  7. 浅谈Android编码规范及命名规范

    前言: 目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑. 现大框架已经完成,正在进行细节模块上的开发 抽空总结一下Android项目的开发规范:1.编码规范 ...

  8. Android 命名规范 (提高代码可以读性)

    android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...

  9. iOS开发(OC)中的命名规范

    开小差:最近发现自己有一个经验主义的毛病,不太容易接受新的知识,这对从事技术研发的人来说不太合理,需要改之. 正文:通过读写大量代码我有自己的一套编程思路和习惯,自认为自己的编码习惯还是不错的,代码结 ...

随机推荐

  1. 用Html5结合Qt制作一款本地化EXE游戏-太空大战(Space War)

    本次来说一说如何利用lufylegend.js引擎制作一款html5游戏后将其通过Qt转换成EXE程序.步骤其实非常简单,接下来就一步步地做一下解释和说明. 首先我们来开发一个有点类似于太空大战的游戏 ...

  2. 积跬步,聚小流------关于UML类图

    UML的存在 类图是使用频率比較高的UML图,它用于描写叙述系统中所含的类以及它们之间的相互关系,帮助人们简化对系统的理解,也是系统分析和设计阶段的重要产物,也是系统编码和測试的重要类型根据. UML ...

  3. #, about:blank,javascript:路径比较

    试了一下在<a>,<img>,<iframe>中用#,about:blank和javascript: 代码如下: <!Doctype html> < ...

  4. 关于java项目导入,所碰到的版本问题

    怎么修改myeclipse 项目中用的jdk版本 工具/原料 MyEclipse java项目 方法/步骤  首先打开MyEclipse,如下图所示  打开之后,找到我们的java项目  然后右键-- ...

  5. java结构与算法之选择排序

    一 .java结构与算法之选择排序(冒择路兮快归堆) 什么事选择排序:从一组无序数据中选择出中小的的值,将该值与无序区的最左边的的值进行交换. 简单的解释:假设有这样一组数据 12,4,23,5,找到 ...

  6. [置顶] android 心跳包的分析

    android 心跳的分析 最近在做一个项目中用到了心跳包的机制,其实就是传统的长连接.或许有的人知道消息推送的机制,消息推送也是一种长连接 ,是将数据有服务器端推送到客户端这边从而改变传统的“拉”的 ...

  7. Css静态进度条

    图片预览: Css代码: <style> .statusList{width:240px; float:left; line-height:68px;margin:0 2px; text- ...

  8. 纯css画哆啦A梦

    今天有点无聊,照着网上的图写了个哆啦A梦,无技术可言,纯考耐心. <!doctype html> <html lang="en"> <head> ...

  9. python中的map,filter,zip函数

    map() Return an iterator that applies function to every item of iterable, yielding the results 例如: a ...

  10. Java面试题之一

    下面也将收集一些经典的java面试题,琢磨这些面试题还是非常有好处,可以弄清楚一些容易混淆的知识点,下面面试题的答案部分来自网络,有些来自自己的理解,都是自己精心归纳整理的,有问题的地方,希望大家指出 ...