C#常用的命名规则汇总
C#常用的命名规则汇总
来源 https://www.cnblogs.com/pengyouqiang88/p/5021128.html
本文详细汇总了C#常用的命名规则。分享给大家供大家参考。具体如下:
Pascal 规则
每个单词开头的字母大写(如 TestCounter).
Camel 规则
除了第一个单词外的其他单词的开头字母大写. 如. testCounter.
Upper 规则
仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则.
例如:
{
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为前缀,并紧跟一个大写字母(即接口名的第一个字母大写)
例如:
{
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结尾
{
}
自定义的异常以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
C#常用的命名规则汇总的更多相关文章
- 【转】常用css命名规则
常用的css命名规则 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左 ...
- [Python3] 002 Python3 中常用的命名规则
目录 1. 什么可以用来命名? 1.1 老三样: 字母.数字.下划线 1.2 其他 2. 什么不能用来命名? Python3 中的"关键字" 3. 命名"小贴士" ...
- css 常用样式命名规则
大家在写css的时候,对一些html标签起一个合适的名字是个很头疼的事情,现在给大家分享项目中常用的名字供参考. 外套:wrap ——用于最外层 头部:header ——用于头部 主要内容:mai ...
- CSS 常用的命名规则
(1)页面结构 容器: container 页头:header 内容:content/container 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column ...
- C#常用的命名规范
C#常用的命名规则 Pascal 规则 每个单词开头的字母大写(如 TestCounter). Camel 规则 除了第一个单词外的其他单词的开头字母大写. 如. testCounter. Upper ...
- [转]程序开发基础学习二(C++ Google Style 命名规则)
无规矩不成方圆,新的岗位就需要服从团队的编码规则.很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远 ...
- windows编程命名规则
转自:http://blog.sina.com.cn/s/blog_52cbfc3f0100fdy6.html 匈牙利命名法是一种编程时的命名规范.基本原则是:变量名=属性+类型+对象描述.其中每一对 ...
- 常用的css命名规则:
关于团队合作的css命名规范 常用的css命名规则: 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制 ...
- CSS的class、id、css文件名的常用命名规则
CSS的class.id.css文件名的常用命名规则 (一)常用的CSS命名规则 头:header 内容:content/container 尾:footer ...
随机推荐
- Python_装饰器精讲_33
from functools import wraps def wrapper(func): #func = holiday @wraps(func) def inner(*args,**kwargs ...
- 深度学习之概述(Overview)
2016年被称为人工智能的元年,2017年是人能智能应用的元年:深度学习技术和应用取得飞速发展:深度学习在互联网教育场景也得到广泛应用.本文主要介绍机器学习及深度学习之定义及基本概念.相关网络结构等. ...
- c++入门之运算符重载
c++函数重载:可以将一个函数名用于不同功能的函数.从而处理不同的对象.对于运算符,同样也有这样的用途,即对同一个标志符的运算符,可以运用到不同的功能中去. 首先引入:运算符重载,在C语言中甚至都有运 ...
- 机器学习第一篇——最近邻kNN
机器学习监督学习中,根据解决问题的连续性和离散型,分为分类问题和回归问题.最邻近算法kNN是一种最为直接和简便的分类方法. kNN本质上,是计算目标到模型的欧式距离,从而判定目标所属的类别. 首先,在 ...
- jmeter分布式压测(多台电脑一起压测)
(1)在Windows下运行 操作步骤: 1) 有多台电脑,每台电脑上都有jmeter,而且这几台电脑都互相能ping通. 2) 在我的电脑的jmeter的配置文件bin目录下的jme ...
- 基于redis实现的点赞功能设计思路详解
点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...
- js在微信、微博、QQ、Safari唤起App的解决方案
首先看下完整的流程: 简单说下universal link 在iOS9之前,唤起方式和现在安卓是一个的,都是使用scheme进行唤起,这种方式有个小问题,每次唤起,都会给个提示:是否打开xx应用,这样 ...
- dede:field name=’position’标签调用 主页改成英文Home和改变符号
在用dede:field name=’position’ 这个标签的时候我们调用的这个就是中文的,出现的是主页>+相应的栏目 ,那么这个问题怎么改成英文的呢?有好多大虾都说找到dede安装目录 ...
- jQuery的each使用陷阱
注意:jQuery使用each()函数进行循环时发现return false不能阻止程序继续向下执行 原因如下: (1)开始还以为是jQuery的each()函数是异步执行的,所以导致出错,其实不是. ...
- rabbitmq 配置
1, 安装 apt-get install rabbitmq-server -y 2, 打开管理页面 sudo rabbitmq-plugins enable rabbitmq_management ...