匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)

一、匈牙利命名法
      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


x,y coordinates (short)


x,y坐标值(短整数)


v


void



……


……


……

二、骆驼命名法:
         骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:
printEmployeePaychecks();
print_employee_paychecks();
第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。
骆驼式命名法近年来越来越流行了,在许多新的函数库和Microsoft Windows这样的环境中,它使用得当相多。另一方面,下划线法是c出现后开始流行起来的,在许多旧的程序和UNIX这样的环境中,它的使用非常普遍
三、帕斯卡(pascal)命名法
与骆驼命名法类似。只不过骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写
如:public void  DisplayInfo();
       string UserName;
二者都是采用了帕斯卡命名法.,在C#中,以帕斯卡命名法和骆驼命名法居多。 在以前版本的Visual Studio中,微软曾建议使用匈牙利命名法来写代码,并鼓励开发这位写出统一格式的代码而使用相同的法则。在最近发布的.NET和它的编程语言中,微软更换了他的这一法则。在C#中,以帕斯卡命名法和骆驼命名法居多。以下就是 帕斯卡命名法和骆驼命名法的具体使用。

编程规范


类型


命外规则


说明


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

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

时间: 2024-10-24 02:03:06

匈牙利命名法,骆驼命名法(camel),帕斯卡(Pascal)命名法(转)的相关文章

Delphi APP 開發入門(六)Object Pascal 語法初探

Delphi APP 開發入門(六)Object Pascal 語法初探 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數:3442 發表時間:2014/06/10 tags: 行動開發 教學 App Delphi XE6 Android iOS Delphi APP 開發入門(五)GPS 定位功能 << 前情 經過前面五週幾乎每週可以寫出一個簡單App後,大家都可以感受到Delphi強大的開發威力!

C# Dictionary源码剖析---哈希处理冲突的方法有:开放定址法、再哈希法、链地址法、建立一个公共溢出区等

参考:https://blog.csdn.net/exiaojiu/article/details/51252515 http://www.cnblogs.com/wangjun1234/p/3719635.html 源代码版本为 .NET Framework 4.6.1 Dictionary是Hashtable的一种泛型实现(也是一种哈希表)实现了IDictionary泛型接口和非泛型接口等,将键映射到相应的值.任何非 null 对象都可以用作键.使用与Hashtable不同的冲突解决方法,D

MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》

数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. sim:模拟环境,开发可读写,发起上线请求时,会先在这个环境上进行预执行,这个环境也可供部署上线演练或压力测试使用. real:生产数据库从库(准实时同步),只读环境,不允许修改数据,不允许修改表结构,供线上问题查找,数据查询等使用. online:线上环境,开发人员不允许直接在线上环境进行数据库操作

[经典] 使用Python批量重命名iPhone拍摄的照片-按照拍摄时间重命名

#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 批量修改照片文件名称的Python脚本程序. 遍历指定目录(含子目录)的照片文件,根据拍照时间将照片文件名修改为以下格式: 20140315_091230.jpg (%Y%m%d_%H%M%S) 由于文件名已经精确到秒,理论上重名的概率非常小. 如果需要考虑到重名的问题,可以对本程序进行进一步的优化. !该程序需要安装exifread模块,否则无法使用. 例如,Linux/Mac OS X下命令行

ubuntu sogou 輸入法無法輸入文字,解決辦法【转载】

之前一段时间正常使用的搜狗输入法突然无法输出中文(具体现象是,可以呼出搜狗输入法界面,但是候选词列表无显示),解决之后记录下来,希望能为同样遇到这个问题的人提供参考.同时附linux下常见软件崩溃问题解决方案. 我的系统是:ubuntu 16.04 LTS 搜狗版本:sogoupinyin_2.1.0.0082_amd64 fcitx版本:1:4.2.9.1-1ubuntu1.16.04.1 方法一:重启搜狗输入法 通过下面的两个命令重启搜狗输入法,看重启后是否可以正常使用: ~$ killal

【散列表-直接定址法】含有卫星数据的直接定址法

数组T中的每个值都是指针,指针指向node结点,node结点中的元素为key,data. 代码: #include<stdio.h> #include<stdlib.h> typedef struct Node { int key; int data; }Node; typedef struct T { Node **table;//利用指针数组 int size; }T; void T_create(T *t) { printf("关键字全域U是多少?\n")

[转] Android 命名规范 (提高代码可以读性)

Android命名规范编码习惯 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员

安卓命名规范

软件开发离不开团队,当然安卓开发也是这样的.所以一定要做好团队之间的协调和规范.下面是我复制的一篇博客,可以认真学习安卓的命名规范,更好地协调团队之间的合作. 转的博客内容如下: 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就更加吃力了,因为大家之间的编程方式

Android 命名规范 (提高代码可以读性)

刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名的那个控件什么是什么用的,就要读一遍甚至好几遍才知道,这样的话,在代码的 审查和修改过程中就会浪费不少不必要的时间.如果就是我一个人开发,一个人维护的话还好,可是如果一个项目是团队分工合作,这样让你的同事去看你的代码就 更加吃力了,因为大家之间的编程方式不一样,所以,在开发过程中,命名规范统一尤为重要,最好是团队中统一好大家命名方法,这样对于日后的工作会轻松很 多. 在面试的时候,审核一个程序员的编程水平的时候,命名规范也是一

android命名规范

标识符命名法标识符命名法最要有四种:1 驼峰(Camel)命名法:又称小驼峰命名法,除首单词外,其余所有单词的第一个字母大写.2 帕斯卡(pascal)命名法:又称大驼峰命名法,所有单词的第一个字母大写3 下划线命名法:单词与单词间用下划线做间隔.4 匈牙利命名法:广泛应用于微软编程环境中,在以Pascal命名法的变量前附加小写序列说明该变量的类型. 量的取名方式为:<scope_> + <prefix_> + <qualifier>范围前缀,类型前缀,限定词.个人觉得