代码规范
1 命名规则:
Camel(驼峰式): 大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。 一般用作本地变量、方法参数名等。
Pascal(帕斯卡): 大小写形式-所有单词第一个字母大写,其他字母小写。一般用作类名、方法名、属性等。
类名和属性名应该是名词或名词短语,不应当是动词;方法名应当是动词或动词短语。
2、 类型(类、结构、委托、接口)、字段、属性、方法、事件的命名
优先考虑使用英文(尽量使用英文),如果实在没有合适的英文进行描述,可以使用拼音,用有意义且可读性强名称,使用源自所涉问题领域的名称。
3、不使用缩写
所有类型、字段、属性、方法、事件尽量不使用缩写,包括大家熟知的缩写,例如msg,不要害怕长名称,长而具有描述性的名称比短而令人费解的名称好。
4、不使用单个字母的变量
不使用单个字母的变量, 像 i、m、n,使用index等来替换,用于循环迭代的变量除外。
5、 注释
类型、属性、事件、方法、方法参数,根据需要添加注释。如果类型、属性、事件、方法、方法参数的名称已经是自解释了,不需要加注释;否则需要添加注释。
todo注释是一种程序员认为应该做,但是由于某些原因目前还没有做的工作。
6、类型名称和源文件名称一致
当类型命名为Product时,其源文件命名只能是Product.cs。
7、一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小
8、调用类型成员内部其他成员,需加this,调用父类成员需加base
9、不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可复用
10、不要“捕捉了异常却什么也不做“。如果隐藏了一个异常,你将永远不知道异常到底发生了没有
11、如果if语句块的内容只有一行,可以不加花括号,并且最好和if语句位于同一行
12、返回bool类型的方法、属性的命名
如果方法返回的类型是bool类型,则其前缀为Is,例如:IsHidden。
如果某个属性的类型为bool类型,则其前缀为Can,例如:CanHidden。
13、常见后缀类型命名
凡符合下表所列的集合类型,应添加相应的后缀。
说明 | 后缀 | 示例 |
---|---|---|
数组 | Array | int[] productArray |
列表 | List | List<Product> productList |
DataTable/HashTable | Table | HashTable productTable |
字典 | Dictionary | Dictionay<string,string> productDictionary |
EF中的DbSet /DataSet | Set | DbSet<Product> productSet |
说明 | 后缀 | 示例 | 示例说明 |
---|---|---|---|
费用相关 | Cost | ShipCost | 运输费 |
价格相关 | Price | ProductUnitPrice | 产品单价 |
消息相关 | Message(弃用Note) | SuccessMessage | 成功消息 |
日期相关 | Date(弃用Time) | OrderDate | 下单日期 |
计数、数量相关 | Count(弃用Time) | LoginCount | 登录次数 |
链接地址相关 | Url | BlogUrl | 博客链接 |
图片相关 | Image | SignImage | 签名图片 |
金额相关 | Amount | PrepaidAmount | 预付款 |
点数、积分相关 | Point | MemberPoint | 会员积分 |
记录、日志相关 | Record(弃用Log) | ErrorRecord | 错误记录 |
配置相关 | Config | DataBaseConfig | 数据库配置 |
状态相关 | Status | OrderStatus | 订单状态 |
模式、方式相关 | Mode | OpenMode | 打开方式 |
种类相关 | Category / Type 二选一 | UserCategory | 用户种类 |
工厂类相关 | Factory | ConnectionFactory | 连接工厂 |
启用相关 | Enabled | ExportEnabled | 开启导出 |
流相关 | Stream | UploadStream | 上传流 |
读取器相关 | Reader | ExcelReader | Excel读取器 |
写入器相关 | Writer | ExcelWriter | Excel写入器 |
适配器相关 | Adapter | IntroOPAdapter | IntroOP适配器 |
提供器相关 | Provider | MemebershipProvider | 会员信息提供器 |
包装器相关 | Wrapper | ProductWrapper | Product包装器 |
连接相关 | Connection | ExcelConnection | Excel连接 |
14. 代码一定要短小,使用异常代替返回错误码。消除重复,避免冗余。
15. 类不应暴露其内部结构,即不能被直接操作类的私有数据。
16. 不要传递null,返回null不如抛出异常,对可能出现null值的地方作容错处理。