本文共 3424 字,大约阅读时间需要 11 分钟。
写在前面:本文是根据alibaba的以及整理的一篇适用于C#的开发规范。
startTime
, workQueue
public enum Season{ Spring, Summer, Autumn, Winter}
用UI组件缩写做UI变量前缀,如:
Label - lbl
TextBox - tboxTextBlock - tblkButton - btnImage - imgGrid - grdStackPanle - stkpnl若大括号内为空,简洁的写成{}即可,大括号中间无需换行和空格;如果非空代码块则左右大括号各占一行。
左小括号和字符之间不出现空格,右小括号和字符间也不要出现空格。
if/for/while/switch/do等保留字与括号之间必须加空格。
任何二目、三目运算符的左右两边都需要加一个空格。
采用四个空格缩进,禁止使用tab,可在IDE中设置tab为4个空格。
注释的双斜线与注释之间有且只有一个空格。
在进行类型强制转换时,右括号与强制转换值之间不需要空格。
单行字符数限制不超过120个,超出则换行,换行原则如下:
方法参数在定义和传入时,多个参数逗号后必须加空格。
单个方法的总行数不超过80行。
不需要添加若干个空格使变量的赋值等号与上一行对应位置的等号对齐。
不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开以提升可读性。以下情况下使用一个空行:
a. 方法与方法,属性与属性之间;
b. 方法中变量声明与语句之间;c. 方法中不同逻辑块之间;d. 方法中的返回语句与其他语句之间;e. 属性与方法,属性与字段,方法与字段之间;任何情形下,不需要插入多个空行进行隔开。
一行只做一个声明。
建议在变量声明时就对其做初始化。
不要使用public的实例字段。
每行一个语句。
所有覆盖的方法,必须加override。
外部正在使用的接口,不允许修改方法签名,避免对接口调用产生影响。
构造函数中禁止加入任何业务逻辑,如果有初始化逻辑,请放在init方法中。
一个类有多个构造方法,或多个同名方法时这些方法应该按顺序放在一起,便于阅读。
类内方法定义的顺序:公有 > 保护 > 私有。
属性的get、set方法中,不要增加业务逻辑,增加排查问题的难度。
慎用对象的Clone方法来拷贝对象,因为是浅拷贝,若想实现深拷贝需覆盖Clone方法。
类成员与方法的访问严格控制:
不要给成员变量加任何前缀,区分局部变量与成员变量使用this。
类名与文件名保持一致。
类型成员的排列顺序:
////// .../// public bool IsActive{ ...}
////// .../// /// ...///... ///(可选)/// .../// private bool Function(int param){ ...}
////// .../// public class ClassName{ ...}
方法内部的单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用//注释,不要使用/**/。
所有枚举类型的字段必须要有注释,说明数据项的用途。
代码修改的同时,注释也要相应修改。
谨慎注释掉代码。在上方注释详细说明,而不是简单的注释掉。如果无用,则删除。
好的命名、代码结构是自解释的,注释力求精简准确、表达到位。避免过多过滥的注释,否则代码一旦修改,注释的修改负担很大。
特殊注释标记,需注明标记人与时间。应及时处理这些标记。如:
右花括号"}"后建议添加注释,以便找到对应的"{"。
避免在代码行尾添加注释,仅方法内变量声明或花括号后的注释使用行尾注释。
文件注释:
//// Copyright (c) Hisense. All rights reserved.// //xxx //yyyy-mm-dd //... //(可选)// 修改人:// 修改时间:// 描述://
转载地址:http://dkoyz.baihongyu.com/