C#常用的命名规则汇总




本文详细汇总了C#常用的命名规则。分享给大家供大家参考。具体如下:

Pascal 规则每个单词开头的字母大写(如 TestCounter).


Camel 规则除了第一个单词外的其他单词的开头字母大写. 如. testCounter.

Upper 规则仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则.

例如:


代码如下:


public class Math

{

public const PI = ...

public const E = ...

public const FeigenBaumNumber = ...

}



具体的规则总结如下:


类命名指导

 

- 类名应该为名词及名词短语,尽可能使用完整的词.

- 使用Pascal规则

- 不要使用类前缀 - 不要使用下划线字符 (_)。

- 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。

- 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。


接口命名规则

- 接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词. (Example IComponent or IEnumberable)

- 使用Pascal规则

- 使用字符I为前缀,并紧跟一个大写字母(即接口名的第一个字母大写)

例如:


代码如下:


interface ICompare

{

int Compare();

}



枚举命名规则

 

- 对于 Enum 类型和值名称使用 Pascal 大小写。

- 少用缩写。

- 不要在 Enum 类型名称上使用 Enum 后缀。

- 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。

- 总是将 FlagsAttribute 添加到位域 Enum 类型。



变量命名

- 在简单的循环语句中计数器变量使用 i, j, k, l, m, n

- 使用 Camel 命名规则


方法命名

- 使用Pascal规则

- 对方法名采用一致的动词/宾语或宾语/动词顺序。例如,将动词置于前面时,所使用的名称诸如 InsertWidget 和 InsertSprocket;将宾语置于前面时,所使用的名称诸如 WidgetInsert 和 SprocketInsert。

- 推荐名称应该为动词或动词短语.例如Save,SaveCustomer,而不要使用CustomerSave

- 不要在方法中重复类的名称。例如,如果某个类已命名为 Book,则不要将某个方法称为 Book.CloseBook,而可以将方法命名为 Book.Close。


属性命名

- 名称应该为名词及名词短语

- 使用Pascal规则

- 对于bool型属性或者变量使用Is(is)作为前缀,不要使用Flag后缀,例如应该使用IsDeleted,而不要使用DeleteFlag


集合命名

- 名称应该为名词及名词短语

- 使用Pascal规则

- 名称后面追加“Collection”


事件命名

- event handlers命名使用 EventHandler 后缀.

- 两个参数分别使用 sender 及 e

- 使用Pascal规则

- 事件参数使用EventArgs 后缀

- 事件命名使用语法时态反映其激发的状态,例如 Changed,Changing.

- 考虑使用动词命名. 变量命名

- 在简单的循环语句中计数器变量使用 i, j, k, l, m, n

- 使用 Camel 命名规则


自定义的属性以Attribute结尾


代码如下:


public class AuthorAttribute : Attribute

{

}



自定义的异常以Exception结尾

代码如下:


public class AppException : Exception

{

}



其它常用的编码规则

代码的缩进。要用Tab,而不要用space.

局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)。

所有的成员变量声明在类的顶端,用一个换行把它和方法分开。

用有意义的名字命名namespace,如:产品名、公司名。

始终使用"{ }"包含if下的语句,即使只有一条语句。

把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion。


命名规范的总结用表格表示如下:

 

与类相关:


 



标识符



大小写



示例



类/结构



Pascal



AppDomain



枚举类型



Pascal



ErrorLevel



枚举值



Pascal



FatalError



事件



 

Pascal

 



ValueChange



异常类



Pascal



WebException

注意 总是以 Exception 后缀结尾。



只读的静态字段



Pascal



RedValue



接口



Pascal



IDisposable

注意 总是以 I 前缀开始。



集合



Pascal



CustomerCollection 注意 总是以Collection结束



方法



Pascal



ToString



命名空间



Pascal



System.Drawing



参数



Camel



typeName



属性



Pascal



BackColor



受保护的实例字段



Camel



redValue

注意 很少使用。属性优于使用受保护的实例字段。



公共实例字段



Pascal



RedValue

注意 很少使用。属性优于使用公共实例字段。



变量和方法参数命名:根据不同的数据类型前缀+首字母大写的变量描述


与变量命名相关


类型



前缀



示例



Array



arr



arrShoppingList



Boolean



bln



blnIsPostBack



Byte



byt



bytPixelValue



Char



chr



chrDelimiter



DateTime



dtm



dtmStartDate



Decimal



dec



decAverageHeight



Double



dbl



dblSizeofUniverse



Integer



int



intRowCounter



Long



lng



lngBillGatesIncome



Object



obj



objReturnValue



Short



shr



shrAverage



Single



sng



sngMaximum



String



str



strFirstName



与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



与页面控件有关

 


数据类型



数据类型简写



标准命名举例



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



与页面控件有关


数据类型



数据类型简写



标准命名举例



AdRotator



adrt



Example



Button



btn



btnSubmit



Calendar



cal



calMettingDates



CheckBox



chk



chkBlue



CheckBoxList



chkl



chklFavColors



CompareValidator



valc



valcValidAge



CustomValidator



valx



valxDBCheck



DataGrid



dgrd



dgrdTitles



DataList



dlst



dlstTitles



DropDownList



drop



dropCountries



HyperLink



lnk



lnkDetails



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_r



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



 

============= End