匈牙利命名法,骆驼命名法,帕斯卡(pascal)命名法

      转自:http://shitou7630.blog.163.com/blog/static/3269953620126230351197/

一、匈牙利命名法

     广泛应用于象Microsoft Windows这样的环境中。
Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法中常用的小写字母的前缀:

前缀

数据类型

说明

a

Array

数组

b

BOOL(int)

布尔(整数)

by

Unsigned Char (Byte)

无符号字符(字节)

c

Char

字符(字节)

cb

Count of bytes

字节数

cr

Color reference value

颜色(参考)值

cxcy

Count of x,y (Short int)

x,y的集合(短整数)

dw

DWORD (unsigned long)

双字(无符号长整数)

f

Flags (usually multiple bit values)

标志(一般是有多位的数值)

fn

Function

函数

g_

global

全局的

h

Handle

句柄

i

Integer

整型

l

Long int

长整数

lp

Long pointer

32位的长整数指针

m_

Data member of a class

一个类的数据成员

msg

message

消息

n

Short Int

短整型

np

Near Pointer

近指针

p

Pointer

指针

s

string

字符串型

szstr

Zero terminated String

以NULL作结尾的字符串型

tm

Text metric

文本规则

u

Unsigned int

无符号整数

ul

Unsigned long (ULONG)

无符号长整数

w

WORD (unsigned short)

无符号短整数

xy

xy coordinates (short)

x,y坐标值(短整数)

v

void

……

……

……



二、骆驼命名法:

骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:

printEmployeePaychecks();

print_employee_paychecks();

第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。

骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft
Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍。


三、帕斯卡(pascal)命名法

与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写

如:public void  DisplayInfo();
       string UserName;
二者都是采用了帕斯卡命名法.
在C#中,以帕斯卡命名法和骆驼命名法居多。

*****************************************************************

在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。如果你用过Delphi编程,你会看到新的法则与Delphi(Pascal)有些相似。

从我学习编程以来Visual Studio是6.0,之后有2003版和2005版,到现在有2008版了; .NET framwork类库也从以前的1.1、2.0、3.0到现在的3.5,我学C++之时用的是Visual Studio 6.0,那时老师还介绍使用匈牙利命名法,不过之后到.NET平台下微软不建议用匈牙利命名法了,这可以从微软根据其所推出产品的示例和.NET framwork类库参考看到,在C#中,以帕斯卡命名法和骆驼命名法居多。我个人习惯骆驼命名法,事实上在.NET framwork类库参考中使用的就是帕斯卡命名法和骆驼命名法。

以下就是 帕斯卡命名法和骆驼命名法的具体使用。

编程规范

类型

命外规则

说明

命名空间 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

具体应用的一般良好习惯

1、

成员变量前加前缀 _

2、

接口的名称加前缀I

3、

自定义的属性以Attribute结尾,如:

public class AuthorAttribute :Attribute

{

}

4、

自定义的异常以Exception结尾,如:

public class AppException: Exception

{
}

5、

方法的命名。一般将其命名为动宾短语,如:

ShowDialog()

CreateFile()

6、

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

7、

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

8、

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

9、

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

10、

生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string。

11、

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

12、

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

你可能感兴趣的:(pascal,全名规范)