c#命名规范(转载)
出处:脚本之家
链接:http://www.jb51.net/article/57163.htm
注重代码书写的程序员应该是一个比较有修养的人,下面这些命名规则不一定要绝对遵从,但值得参考。在应用规则
时要进行合理的判断。
Pascal 规则(帕斯卡命名)
每个单词开头的字母大写(如 TestCounter).
 
Camel 规则(大驼峰和小驼峰命名)
除了第一个单词外的其他单词的开头字母大写. 如. testCounter.
Upper 规则
仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则.例如:
public class Math
{
public const PI = ...
public const E = ...
public const FeigenBaumNumber = ...
}
具体的规则总结如下:
 
类命名指导
- 类名应该为名词及名词短语,尽可能使用完整的词
- 使用Pascal规则
- 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。
例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException
是一种 Exception。
请在应用该规则时进行合理的判断。
例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部
分将使名称不必要地加长。
 
接口命名规则
- 接口名称应该为名词及名词短语或者描述其行为的形容词,尽可能使用完整的词。
 
枚举命名规则
- 对于 Enum 类型和值名称使用 Pascal 大小写
- 少用缩写
- 不要在 Enum 类型名称上使用 Enum 后缀
- 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。
- 总是将 FlagsAttribute 添加到位域 Enum 类型
 
 变量命名
- 使用 Camel 命名规则
- 在简单的循环语句中计数器变量使用 i, j, k, l, m, n
 
方法命名
- 使用Pascal规则
- 对方法名采用一致的动词/宾语或宾语/动词顺序
例如,将动词置于前面时,所使用的名称诸如 InsertWidget 和 InsertSprocket;将宾语置于前面时,所使用的名
称诸如 WidgetInsert 和 SprocketInsert,在此推荐前者。
- 不要在方法中重复类的名称
     例如,如果某个类已命名为 Book,则不要将某个方法称为 Book.CloseBook,而可以将方法命名为 Book.Close。
 
属性命名
- 名称应该为名词及名词短语
- 使用Pascal规则
- 对于bool型属性或者变量使用Is(is)作为前缀,不要使用Flag后缀,例如应该使用IsDeleted,而不要使用DeleteFlag
 
集合命名
- 名称应该为名词及名词短语
- 使用Pascal规则
- 名称后面追加“Collection”
(个人觉得代表集合的类后面加Collection,代表集合的变量后面加List)
 
事件命名
- event handlers命名使用 EventHandler 后缀
- 两个参数分别使用 sender 及 e
- 使用Pascal规则
- 事件参数使用EventArgs 后缀
- 事件命名使用语法时态反映其激发的状态,例如 Changed,Changing
- 考虑使用动词命名. 变量命名
其它常用的编码规则
- 代码的缩进。要用Tab,而不要用space
- 局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可使用i,j,k,l,m,n)
- 所有的成员变量声明在类的顶端,用一个换行把它和方法分开
- 用有意义的名字命名namespace,如:产品名、公司名
- 把相似的内容放在一起,比如数据成员、属性、方法、事件等,并适当的使用#region…#endregion
自定义的属性以Attribute结尾
public class AuthorAttribute : Attribute
{
}
自定义的异常以Exception结尾
public class AppException : Exception
{
}
命名规范的总结用表格表示如下:
与类相关:
| 
 标识符  | 
 大小写  | 
 示例  | 
| 
 类/结构  | 
 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  | 
与页面控件有关(html标签)
| 
 数据类型  | 
 数据类型简写  | 
 标准命名举例  | 
| 
 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  | 
与页面控件有关(html标签)
| 
 数据类型  | 
简写 | 举例 | 
| 
 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  | 
c#命名规范(转载)的更多相关文章
- DIV+CSS命名规范-转载2
		
一.CSS文件及样式命名1.CSS文件命名规范 全局样式:global.css: 框架布局:layout.css: 字体样式:font.css: 链接样式:link.css: 打印样式:print.c ...
 - DIV+CSS命名规范-转载1
		
命名规则说明: 1).所有的命名最好都小写 2).属性的值一定要用双引号("")括起来,且一定要有值如class="divcss5",id="divc ...
 - 【转载】Vue项目中的文件/文件夹命名规范
		
文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小写字母开头的(kebab-case)命名规范 属于组件或类的,统一使用大写字母开头的(PascalCase)命名 ...
 - java开发命名规范(转载)
		
java开发命名规范 使用前注意事项: 1. 由于Java面向对象编程的特性, 在命名时应尽量选择名词 2. 驼峰命名法(Camel-Case): 当变量名或函式名是由一个或多个单字连结在一起,而 ...
 - 【转载】Android 开发 命名规范
		
原文地址:http://www.cnblogs.com/ycxyyzw/p/4103284.html 标识符命名法标识符命名法最要有四种: 1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外, ...
 - 转型、java基础之Java变量命名规范 (转载)
		
向上转型:基类引用指向导出类(派生类)的对象(实例)向下转型:导出类的引用指向基类的对象(实例) 重点:向下转型只有将该引用的导出类的向上转型后向下转型,运行时才不会报错 Java是一种区分字母的大 ...
 - [转载]python 变量命名规范
		
原文地址:python 变量命名规范作者:loveflying python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是自己总结了一些,可供参考. 模块名: 小写字母,单词之间用 ...
 - C# 控件缩写大全+命名规范+示例
		
如有转载,请注明出处:http://www.cnblogs.com/flydoos/archive/2011/08/29/2158903.html C# 控件缩写大全+命名规范+示例 写程序的时候突然 ...
 - python 命名规范
		
参考Google开源项目风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/cont ...
 
随机推荐
- LeetCode - Word Subsets
			
We are given two arrays A and B of words. Each word is a string of lowercase letters. Now, say that ...
 - tcp_timestamps和tcp_tw_recycle
			
不同时开启tcp_timestamps和tcp_tw_recycle的场景描述 FULL NAT下 FULL NAT 在client请求VIP 时,不仅替换了package 的dst ip,还替换了 ...
 - 新系统centos7重启网络报错
			
场景: 在不知名云上新弄的centos7,改了IP之后启动不起来,使用systemctl status network查看结果如下: 排查过程: 1)NetworkManager是否关 ...
 - mysql 启动失败,数据恢复
			
mysql 启动失败,数据恢复 2017年02月13日 16:46:36 阅读数:621 Forcing InnoDB Recovery提供了6个等级的修复模式,需要注意的是值大于3的时候,会对数据文 ...
 - Spring Boot使用单元测试
			
一.Service层单元测试: 代码如下: package com.dudu.service;import com.dudu.domain.LearnResource;import org.junit ...
 - logback不输出日志消息,且SLF4J绑定源错误
			
我之前的项目已经成功使用过logback作为日志输出,但是今天新项目在使用的时候,不输出日志信息. 最后终于找到问题所在,并成功解决.解决步骤如下: 第一步:检查pom.xml 按照以往惯例,我先检查 ...
 - finstrument-functions
			
2017-12-03 23:59:16 参考 如何快速地在每个函数入口处加入相同的语句? https://www.zhihu.com/question/56132218 做个存档 scj@scjCom ...
 - percona-toolki安装冲突(my.cnf Percona-Server-shared与mysql-community-server)
			
最近在安装percona-toolkit工具包时,提示在my.cnf文件中, Percona-Server-shared与mysql-community-server冲突.起初还以为是一定需安装Per ...
 - SQLServer数据库镜像配置
			
目录 一.目标...2 二.前提条件.限制和建议...2 三.设置概述...2 四.安装Sql Server 2008 enterprise X64.3 4.1.安装.NET3.5.3 4.2.安装时 ...
 - java中Arrays的用法
			
Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能. 大大提高了开发人员的工作效率. 一 数组复制 与使用System.arraycopy进行数组复制类似的, Arrays提供了一个 ...