1、匈牙利命名法:普遍应用于象Microsoft Windows这样的环境中。
Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法经过在变量名前面加上相应的小写字母的符号标识做为前缀,标识出变量的做用域,类型等。这些符号能够多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其余。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头做为前缀;前缀以后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法中经常使用的小写字母的前缀:html
前 缀 | 类 型 |
a | 数组 (Array) |
b | 布尔值 (Boolean) |
by | 字节 (Byte) |
c | 有符号字符 (Char) |
cb | 无符号字符 (Char Byte,没有多少人用) |
cr | 颜色参考值 (ColorRef) |
cx,cy | 坐标差(长度 ShortInt) |
dw | Double Word |
fn | 函数 |
h | Handle(句柄) |
i | 整型 |
l | 长整型 (Long Int) |
lp | Long Pointer |
m_ | 类的成员 |
n | 短整型 (Short Int) |
np | Near Pointer |
p | Pointer |
s | 字符串型 |
sz | 以null作结尾的字符串型 (String with Zero End) |
w | Word |
2、骆驼命名法:
骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:
printEmployeePaychecks();
print_employee_paychecks();
第一个函数名使用了骆驼式命名法——函数名中的每个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每个逻辑断点都有一个下划线来标记。
骆驼式命名法近年来愈来愈流行了,在许多新的函数库和Microsoft
Windows这样的环境中,它使用得当相多。另外一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用很是广泛。
3、帕斯卡(pascal)命名法:
与骆驼命名法相似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写
如:public void
DisplayInfo();
string UserName;
两者都是采用了帕斯卡命名法.
在C#中,以帕斯卡命名法和骆驼命名法居多。程序员
再转一篇总结的不错的文章: http://shy-feng.blog007.com/archives/2008/2008815173010.html编程
在之前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。若是你用过Delphi编程,你会看到新的法则与Delphi(Pascal)有些类似。数组
从我学习编程以来Visual Studio是6.0,以后有2003版和2005版,到如今有2008版了; .NET framwork类库也从之前的1.一、2.0、3.0到如今的3.5,我学C++之时用的是Visual Studio 6.0,那时老师还介绍使用匈牙利命名法,不过以后到.NET平台下微软不建议用匈牙利命名法了,这能够从微软根据其所推出产品的示例和.NET framwork类库参考看到,在C#中,以帕斯卡命名法和骆驼命名法居多。我我的习惯骆驼命名法,事实上在.NET framwork类库参考中使用的就是帕斯卡命名法和骆驼命名法。编程语言
如下就是 帕斯卡命名法和骆驼命名法的具体使用。函数
编程规范学习 |
||
类型ui |
命外规则spa |
说明指针 |
命名空间 namespace |
Pascal |
以.分隔,其中每个限定词均为Pascal命名方式 如ExcelQuicker.Work |
类 class |
Pascal |
每个逻辑断点首字母大写 如public class MyHome |
接口 interface |
IPascal |
每个逻辑断点首字母大写,老是以I前缀开始,后接Pascal命名 如public interface IBankAccount |
方法 method |
Pascal |
每个逻辑断点首字母大写 如private void SetMember(string) |
枚举类型enum |
Pascal |
每个逻辑断点首字母大写 |
委托 delegate |
Pascal |
每个逻辑断点首字母大写 |
局部变量 方法的参数 |
Camel |
首字母小写,以后Pascal命名 如string myName |
具体应用的通常良好习惯 |
||
一、 |
成员变量前加前缀 _ |
|
二、 |
接口的名称加前缀I |
|
三、 |
自定义的属性以Attribute结尾,如: public class AuthorAttribute :Attribute { } |
|
四、 |
自定义的异常以Exception结尾,如: public class AppException: Exception { |
|
五、 |
方法的命名。通常将其命名为动宾短语,如: ShowDialog() CreateFile() |
|
六、 |
代码的缩进。要用Tab,而不要用space. |
|
七、 |
局部变量的名称要有意义。不要用x,y,z等等(除用于For循环变量中可以使用i,j,k,l,m,n)。 |
|
八、 |
全部的成员变量声明在类的顶端,用一个换行把它和方法分开。 |
|
九、 |
用有意义的名字命名namespace,如:产品名、公司名。 |
|
十、 |
生成和构建一个长的字符串时,必定要使用StringBuilder,而不用string。 |
|
十一、 |
始终使用”{ }”包含if下的语句,即便只有一条语句。 |
|
十二、 |
把类似的内容放在一块儿,好比数据成员、属性、方法、事件等,并适当的使用#region…#endregion |