C++、Java与C#的命名规范总结
摘要 由于在开发工作中经常用到C++ Java和C#作为开发语言 命名规范的问题经常给我造成一些困扰 一方面命名规范没有唯一的标准答案 另一方面 虽说语言的命名规范并没有固定的形式 三种语言的风格毕竟不太一样 也各自有着一些独特的特点 本文将对C++ Java与C#的命名规范进行总结 在编写代码的过程中所采用的命名方式经常变动 没有形成固定的风格 因此 根据从网上收集到的一些资料以及自身的一些经验 对C++ Java以及C#的命名规范进行了总结 方便以后查询 命名规范的原则 ◆ 尽量采用以前采用过的命名规则 ◆尽量在三种语言下采用相同的命名规则 以方便记忆 ◆尽量采用来自官方(如Sun MS)的命名规则 匈牙利命名法 Camel命名法与Pascal命名法匈牙利命名法 在Windows编程中使用非常普遍 由微软的一位匈牙利程序员提出 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀 标识出变量的作用域 类型等 例如 m_lpszStr表示指向一个以 字符结尾的字符串的长指针成员变量 在面向对象的程序设计中匈牙利命名法使用起来非常别扭 Camel命名法 即骆驼式命名法 原因是采用该命名法的名称看起来就像骆驼的驼峰一样高低起伏 Camel命名法有两种形式 混合使用大小写字母和单词之间加下划线
例如runFast和run_fast都属于Camel命名法 Pascal命名法 与Camel命名法类似 不过Pascal命名法的首字母为大写字母 命名规范对照表
标识符类型
C++
Java
C#
文件名
与类名相同 定义类是文件名一般成对出现 如FooBar h和FooBar cpp对应类FooBar
与类名相同
同Java
名字空间 包
同C#
包名的前缀是全部小写的ASII字符并且是一个顶级域名 通常是 edu gov net 包名的后续部分根据不同机构各自内部的命名规范不尽相同 这类命名规范可能以特定目录名的组成来区分部门 项目 机器或注册名
示例
l sun eng
l apple quicktime v
l edu cmu cs bovik cheese
Pascal命名法 且从表示范围大的名字开始
示例
l Oracle Data Access;
l Microsoft Office Excel;
枚举值
Pascal命名法 枚举值前面加上枚举类型名 中间以下划线 _ 隔开
示例
l enum Color{Color_Red Color_Green};
Pascal命名法
示例
l enum Color{Red Green};
同Java
类 结构体 类型定义(typedef) 枚举类型
同Java
Pascal命名法
示例
l class Raster;
l class ImageSprite;
同Java
接口
与类型命名规范相同
命名规则与类名相似
示例
l interface RasterDelegate;
l interface Storing;
Pascal命名法 前面需要加上字符 I
示例
l interface ITester;
l interface ILogger;
方法
同C#
Camel命名法
示例
l run();
l runFast();
l getBackGround();
Pascal命名法
示例
l Run();
l RunFast();
l GetBackGround();
方法内的变量及参数
同Java
Camel命名法
示例
l int myWidth;
l int taxTotal;
同Java
私有 保护实例字段
同Java
Camel命名法 前面需要加一个下划线 _
示例
l int _employeeId;
l String _name;
l Customer _customer;
同Java
属性 存取函数
Pascal命名法 读取函数前面加上 Get 设置函数前面加上 Set
示例
l GetEmployeeId();
l SetName();
l GetCustomer();
Camel命名法 读取函数前面加上 get 设置函数前面加上 set
示例
l getEmployeeId();
l setName();
l getCustomer();
与方法命名规则相同 应该与字段名称相同 建议采用自动属性
示例
常量
同Java
全部大写 单词间用下划线隔开
示例
l static final int MIN_WIDTH = ;
l static final int MAX_WIDTH = ;
l static final int GET_THE_CPU = ;
同Java
事件
无
无
Pascal命名法
示例
l FormClosing;
l ValueChanged;
l ButtonClicked;
异常类型
继承自std::exception 与类型命名规则相同 且以Exception结尾
继承自java lang Exception 与类型命名规则相同 且以Exception结尾
继承自System Exception 与类型命名规则相同 且以Exception结尾
lishixinzhi/Article/program/net/201311/13779