一份我现在开始慢慢执行的C#命名规范

以前开发的时候基本上都没什么具体的格式规范在执行,导致代码存放的时间一长后再去维护的时候发现这个变量或者这个参数代表的意思都不怎么明白了!这份规范是我集合了一些网络公司以及自己的一些开发习惯综合而来,发表上来给大家参考一下,有时候必要的规范还是需要 的,毕竟你做出来的东西后来由自己来维护的几率比较大!

 

 

1 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

 

2 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

 

3 WebControl 命名规范

 

 

数据类型

 

数据类型简写

 

标准命名举例

 

AdRotator

 

adrt

 

Example

 

Button

 

btn

 

btnSubmit

 

Calendar

 

cal

 

calMettingDates

 

CheckBox

 

cbo

 

cboBlue

 

CheckBoxList

 

chkl

 

chklFavColors

 

CompareValidator

 

valc

 

valcValidAge

 

CustomValidator

 

valx

 

valxDBCheck

 

DataGrid

 

dgrd

 

dgrdTitles

 

DataList

 

dlst

 

dlstTitles

 

DropDownList

 

ddl

 

dropCountries

 

HyperLink

 

hlk

 

hlkDetails

 

Image

 

img

 

imgAuntBetty

 

ImageButton

 

ibtn

 

ibtnSubmit

 

Label

 

lbl

 

lblResults

 

LinkButton

 

lbtn

 

lbtnSubmit

 

ListBox

 

lst

 

lstCountries

 

Panel

 

pnl

 

pnlForm2

 

PlaceHolder

 

plh

 

plhFormContents

 

RadioButton

 

rad

 

radFemale

 

RadioButtonList

 

radl

 

radlGender

 

RangeValidator

 

valg

 

valgAge

 

RegularExpression

 

vale

 

valeEmail_Validator

 

Repeater

 

rpt

 

rptQueryResults

 

RequiredFieldValidator

 

valr

 

valrFirstName

 

Table

 

tbl

 

tblCountryCodes

 

TableCell

 

tblc

 

tblcGermany

 

TableRow

 

tblr

 

tblrCountry

 

TextBox

 

txt

 

txtFirstName

 

ValidationSummary

 

vals

 

valsFormErrors

 

XML

 

xmlc

 

xmlcTransformResults

 

Literal

 

ltl

 

ltlTitle

 

4、数据库命名规范:

 

 

A、表命名:TB_表名,表名首字符大写,如:DepartmentUsers
B
、表主键名称为:表名+ID,如Document表的主键名为:DocumentID
C
、存储过程命名:表名+方法,如:p_my_NewsAdd,p_my_NewsUpdate;
D
、视图命名:TV_表名,如:TV_News;
E
Status为表中状态的列名,默认值为“N”,在表中删除操作将会改变Status的值而不真实删除该记录;
F
Checkintime为记录添加时间列,默认值为系统时间;
G
、表、存储过程、视图等对象的所有都为dbo,不要使用数据库用户名,这样会影响数据库用户的更改。

 

 

5C#编程命名标准:

 

 

名称空间的命名 

 

命名名称空间的一般规则如下:   

 

 

CompanyName.TechnologyName 

 

 

这样,我们看到的名称空间应该是这样的:  

 

 

Microsoft.Office  

 

 

PowerSoft.PowerBuilder                              

 

 

 

 

注意:这只是一个原则。第三方公司可以选择其它的名字。  

 

 

避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。 

 

 

例如: 将微软提供的Office自动类命名为Microsoft.Office

 

 

 

 

使用Pascal大写方式,用逗号分隔逻辑成分。  

 

 

例如:Microsoft.Office.PowerPoint

 

 

 

 

如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则。  

 

 

例如: NeXT.WebObjects     

 

 

ee.cummings

 

 

类和类成分的命名

 

类的命名原则是用名词或名词短语命名类,使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C),不要使用带下划线的字符。  

 

 

例如: public class FileStream {}     

 

 

public class Button {}     

 

 

public class String {}

 

 

变量的命名

 

名称中各单词首字母均为大写。  

 

 

例如: FindLastRecord     

 

 

RedrawMyForm  

 

 

在内部范围中避免使用与外部范围中的名称相同的名称。若访问错误变量,则会产生错误结果。若变量与同一名称的关键字冲突,则必须在关键字前加适当的类型库以作标识。   

 

 

例如:若有一个名为 date 的变量,只能通过调用 System.Date 来使用内部 Date 函数。

 

 

 

 

函数和方法的命名

 

函数和方法的命名应该以动词开始,使用Pascal大写。不要使用带下划线的字符。  

 

 

例如: InitNameArray     

 

 

CloseDialog

 

 

接口命名原则

 

使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。 减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。  

 

 

例如: IComponent(描述性名词)      

 

 

ICustomAttributeProvider(名词短语)      

 

 

IPersistable(形容词)

 

 

参数的命名   

 

使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。根据参数的意思来命名参数,而不是根据参数的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。  

 

 

例如: Type GetType (string typeName)     

 

 

string Format (string format, object [ ] args)

 

 

属性的命名

 

用名词或名词短语命名属性,属性与类型要一样。 用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。   

 

 

例如: public enum Color {...}     

 

 

public class Control {     

 

 

public Color Color {get {...} set {...}}     

 

 

}

 

 

事件的命名

 

EventHandloer后缀命名事件处理程序,使用名为sendere的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。   

 

 

例如:public delegate void MouseEventHandler(object sender, MouseEvent e);  

 

 

命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\\AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。

 

 

长项和常用项的命名

 

可使用缩写使名称长度适中,通常,多于 32 个字符的变量名在低分辨率的监视器上难以阅读。同时,请确保缩写在整个应用程序中保持一致。   

 

 

例如:可以使用“HTML”代替“HyperText Markup Language”。

 

 

代码书写格式规范

 

²      文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行。

 

 

²      在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。

 

 

²      每行长度尽量避免超过屏幕宽度,应不超过80个字符。

 

 

²      尽量用公共过程或子程序去代替重复的功能代码段。

 

 

²      使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)

 

 

²      避免采用过于复杂的条件测试。

 

 

²      避免过多的循环嵌套和条件嵌套。

 

 

²      一个函数不要超过200行。一个文件应避免超过2000行。

 

 

²      避免使用goto语句。

 

 

²      避免采用多赋值语句,如x = y = z;

 

 

代码注释规范

 

.cs文件的注释  

 

 

所有.cs文件开头都要加上注释,写明文件创建时间、作者、用途概述等  

 

 

例如:

 

 

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

 

 

//新增日期:2004.7.19

 

 

//作者:XXX

 

 

//內容说明: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

 

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

 

 

 

 

函数过程注释  所有的函数体开头都要加上注释,所以注释使用.NET注释规范。  

 

 

例如:

 

 

/// <summary>

 

 

/// 构造函数

 

 

/// </summary>

 

 

/// <param name='is_xxx1'>示例参数1</param>

 

 

/// <param name='is_xxx2'>示例参数2</param>

 

 

public UpgradeThread(string is_xxx1, string is_xxx2)

 

 

{

 

 

//…

 

 

}

 

 

 

 

常量变量注释  

 

 

所有的常量变量,无论是全局还是局部使用的,凡是对代码整体起到关键性做用的都需要加上注释。  

 

 

例如:

 

 

/// <summary>

 

 

/// 当前线程指向的备份文件本地保存路径

 

 

/// </summary>

 

 

public string StorePath = '';

 

 

 

 

代码修改注释  

 

 

当开发者维护以前的程序代码时,需要在修改处的开始及结尾,加上自己的注释信息。  

 

 

例如:

 

 

//BEGIN 2004-7-19 Jayson 修正了XXX问题略…

 

 

//END 2004-7-19 Jayson

 

posted @ 2010-05-14 00:10  蓝麒麟  阅读(2146)  评论(1编辑  收藏  举报