变量命名规范--匈牙利命名法,骆驼命名法,帕斯卡命名法

时间:2020-12-08 20:05:27


一、匈牙利(Hungarian)命名法:

 广泛应用于像MicrosoftWindows这样的环境中。Windows编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯•西蒙尼(Charles Simonyi)提出的。

 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr,表示指向一个以0字符结尾的字符串的长指针成员变量。

  匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

   在windowsForm应用程序中,控件命名采用匈牙利命名法。例如:

   TextBox类型,前缀加txt,命名为txtCustomerName,txtAddress

   Button类型,前缀加btn,命名为btnSave,btnDelete

 

匈牙利命名法中常用的小写字母的前缀:

前缀           类型

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              字符串型 (string)

sz             null做结尾的字符串型(String with Zero End)

w              Word


二、骆驼(camel)命名法:

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

           printEmployeePaychecks();

           print_employee_paychecks();

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

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

 

三、帕斯卡(pascal)命名法:

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

    public void DisplayInfo(); 

    string UserName;

    二者都是采用了帕斯卡命名法。C#中,以帕斯卡命名法和骆驼命名法居多。在以前版本的VisualStudio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。如果你用过Delphi编程,你会看到新的法则与Delphi(Pascal)有些相似。从学习编程以来Visual Studio6.0,之后有2003版和2005,到现在有2008版了; .NETframwork类库也从以前的 1.0到2.0再到3.0,现在的3.5,学C++之时用的是Visual Studio 6.0,那时老师还介绍使用匈牙利命名法,不过之后到.NET平台下微软不建议用匈牙利命名法了,这可以从微软根据其所推出产品的示例和.NET framwork类库参考看到,在C#中,以帕斯卡命名法和骆驼命名法居多。我个人习惯骆驼命名法,事实上在.NET framwork类库参考中使用的就是帕斯卡命名法和骆驼命名法。

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

编程规范

类型                                                命名规则                                                         说明

命名空间 namespace               Pascal    .分隔,其中每一个限定词均为Pascal命名方式,

                                           如:ExcelQuicker.Work

class、结构struct              Pascal   每一个逻辑断点首字母大写,如:

                                           public class MyHome;public struct MyStruct

接口 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 AuthorAttributeAttribute

{

}

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

public class AppException Exception

{

}

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

ShowDialog();

CreateFile();

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

7.局部变量的名称要有意义。不要用xyz等等(除用于For循环变量中可使用ijklmn)。

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

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

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

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

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