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 ...
随机推荐
- 开源WHMCS支付宝当面付和即时到账插件
开源WHMCS支付宝当面付和即时到账插件 链接: https://pan.baidu.com/s/1i5HU4hn 密码: crq7
- PythonStudy——格式化输入小练习
# 练习:用户输入姓名.年龄.工作.爱好 ,然后打印成以下格式# ------------ info of Egon -----------# Name : Egon# Age : 22# Sex : ...
- 程序猿大牛 Jeff Atwood 的两本中文书
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/happydeer/article/details/17094271 watermark/2/text ...
- Tomcat虚拟根目录与虚拟目录
tomcat版本:apache-tomcat-7.0.42 参考:http://blog.csdn.net/pangdingshan/article/details/7214786 一.虚拟根目录 1 ...
- centos 7.x开放端口
1. 查看已打开的端口 # netstat -anp 2. 查看想开的端口是否已开 # firewall-cmd --query-port=666/tcp 若此提示 FirewallD is not ...
- docker centos7创建consul镜像以及用docker-compose启动镜像
直接贴代码了: Dockfile: # Version 0.1 FROM kuba_centos7 MAINTAINER kuba si812cn@163.com # This is the rele ...
- Linux下usb设备驱动详解
USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能.形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB ...
- k8s Nodeport方式下service访问,iptables处理逻辑(转)
原文 https://www.myf5.net/post/2330.htm k8s Nodeport方式下service访问,iptables处理逻辑 2017年07月11日 0条评论 976次阅读 ...
- I18nUtils
import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.*; ...
- winfrom
WINFORM(winform) windows窗体应用程序(.NET Framework4,版本太高了不好,选中Visual c#) 客户端应用程序的特点是:所见即所得,就是说,编辑的什么样,启动之 ...