.NET C#
语言用法编码规范
一、一般用法
1、不要省略访问修饰符。用相应访问修饰符显式声明所有标识符,而不允许显式声明默认值的标识
符。
2
“
、不要使用默认的( 1.0.*”)版本控制模式。手动增加 AssemblyVersionAttribute 值。
3 、 将 所 有 程 序 集 的 ComVisibleAttibute 设 置 为 false 。 然 后 , 选 择 性 地 对 需 要 的 单 个 类 启 用
ComVisibleAttribute。
4、避免程序集之间的相互引用。
二、变量和类型
1、尽量在声明变量的语句中将变量初始化。
2、使用要求的最简单的数据类型、列表或对象。例如,一般使用 int 类型,除非知道需要存储 64 位的
值,才使用 long 类型。
3、始终使用内置 C#数据类型别名,而不是.NET 公共类型系统(CTS),包括:
使用 short 不用 System.Int16
使用 int 不用 System.Int32
使用 long 不用 System.Int64
使用 string 不用 System.String
4、只是将成员变量声明为 private,使用属性为带有 public、protected 或 internal 访问修饰符的变量提
供访问。
5、避免为 enum 指定类型。除非显式需要 long 类型,否则使用默认的 int 类型。
6、避免声明内联字符串常数,而是使用常量、资源、注册表或其他数据资源。
7、只为简单类型生命常量。
8、为复杂类型声明只读或静态只读变量,而不声明常量。
9、避免直接类型转换。而是使用 as 运算符并检查是否为 null。
10、始终使用 for 循环显式初始化引用类型的数组。
11、避免装箱和拆箱值类型。
12、浮点值在小数点前后至少应该各包括一个数字。
13、在字符串常数前加上前缀@,而不使用转义字符串。
14、不要在循环内连接字符串。
15、不要将字符串与 String.Empty
“”
或 相比较来检查空字符串,而是使用 String.Length==0 进行比较。
16、避免在循环内进行隐藏的字符串分配,而是使用 String.Compare()。
三、流控制
1、避免在条件表达式内调用方法。
2、避免使用 foreach 循环不可变值类型集合,如字符串数组。
3、不要修改 foreach 语句中的枚举项。
4、避免针对 true 或 false 计算布尔条件。
5、避免在条件语句内进行赋值。
6、避免使用复合条件表达式,请使用布尔变量将各部分分为多个易处理的表达式。
7、避免在条件中进行显式布尔测试。
8、只对具有并行条件逻辑的简单操作使用 switch/case 语句。
9、对于短条件序列和复杂条件,优先使用嵌套 if/else 语句,而不是 switch/case。
10、优先使用多态而不是 switch/case 来封装和委托复杂操作。
四、异常处理
1、不使用 try/catch 块用于流控制。