主要有以下两种
・Pascal(帕斯卡):每个单词的首字母大写、例如:ProductType
・Camel(驼峰):首个单词的首字母小写,其余单词的首字母大写、例如:productType
|----------------|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|---|
| 标识符 | 规则 | 样例 | Comment ||
| 命名空间 namespace | Pascal | FXAPIClassLibrary.Source.Cache | ||
| 类 class | Pascal | FXBaseDBControl、NoFoundFileException | ・用名词或名词短语命名Class ・抽象类以Abstract开头 ・属性类以Attribute结尾 ・自定义异常类以 Exception 结尾 ・下列几种常用设计模式,定义的类,要用各自的后缀标识。 工厂模式:Factory 单例模式:Singleton 职责链模式:Responsibility 适配器模式:Adapter 原型模式:Prototype 观察者模式:Observer 代理模式:Proxy 迭代器模式:Iterator ||
| 接口 interface | Pascal | IEquatable | ・用名词或名词短语命名Interface ・总是以 I 前缀开始 ||
| 枚举 enum | Pascal | Color | 规范上不易加Enum 但个人认为包含Enum更易识别 ||
| 常量 const | --- | ERROR_LOGIN、STATUS_SUCCESS | 全部大写,单词间,用下划线分割 ||
| 方法 funtion | Camel | chgDateToString | 动宾结构: [Get、Set、Sel、Upt、Crt、Del、Chg、Move、List等]+名词 ||
| 数据库字段 | Pascal | UserName | ||
| (类)属性 | Pascal | class Employee { private string _name;//数据成员 private byte _age; public string Name//属性 { get { return _name; } set { _name = value; } } public byte Age { get { return _age; } set { _age = value; } } } | 类的数据成员&属性,建议成套使用; 即、数据成员 及get访问器/set访问器 ※数据成员通常有下划线,作为前缀。 ※数据成员的维护和使用,应通过对象的set访问器、get访问器; 而不是直接作用于类。 ||
| (类)数据成员 | Camel | class Employee { private string _name;//数据成员 private byte _age; public string Name//属性 { get { return _name; } set { _name = value; } } public byte Age { get { return _age; } set { _age = value; } } } | 类的数据成员&属性,建议成套使用; 即、数据成员 及get访问器/set访问器 ※数据成员通常有下划线,作为前缀。 ※数据成员的维护和使用,应通过对象的set访问器、get访问器; 而不是直接作用于类。 ||
| 参数 | Camel | sendMessage | ||
| 局部变量 | Camel | userName | ||
※各种命名均应有 明确业务含义,尽量全工程有唯一性的名称。
能繁勿简,避免status, type等单词。仅在短循环索引可使用单字母: i 、j
※命名缩写:考虑到代码的可读性和维护性; 中心词不推荐缩写,或使用通用的命名;例如:
|---|---------------|------------------------------|
| 样例 || Comment |
| × | 中文拼音或日文音读 | 仅可使用 英文单词 |
| × | pwd | 中心词要用Full单词 |
| × | name | 避免全工程内,关键词搜索时,出现大量雷同。 |
| × | 1name | 不能以数字开头 |
| × | userName1 | 避免1,2, ... N的命名方式; 应该更有业务含义。 |
| △ | userName | 尽可能保持全工程变量的唯一性 |
| 〇 | loginUserName | 尽量确保命名在所属工程中,含义的唯一性。 |