四、类/接口成员设计1.设计类和方法时的原则 创建更加容易调试和维护的方法 创建具有强大内聚力的类 创建高度专用的方法 创建松散连接的方法 尽量使方法具有独立性 提高方法的扇入性 降低方法的扇出性2.名称空间引用 using 声明一律以.NET基础框架命名空间、第三方组件命名空间、最后是公司内部产品命名空间排序。using System; using System.Collections; using Microsoft.CSharp; using Sirc.Egss.FileExchangeServer;3.成员排列规则 尽量不要使用类public变量,用属性代替 类成员以internal、private、protected、public排列。public部分按照构造函数、属性、方法、事件的顺序排列。4.每个类文件名应尽量保持与内部类名一致5.尽量避免手动去修改工具环境自动生成的代码6.避免在一个类文件里放置多个类7.一个类文件里应该有且仅有一个命名空间,避免在一个类文件里包含多个不同的命名空间8.避免在一个类文件里代码超过 500 行(除去自动生成的代码)9.数据结构里,应该总是更倾向使用C#的范型generic10.尽量缩小变量的作用域11.接口设计 将接口名去掉 I 前缀后,作为这种默认实现类的名称。比如IComponent的默认实现类是Component 每个接口不应当有超过20个成员的情况,一般应保持在12个左右12.方法设计 创建松散连接和高度专用的方法 创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应依靠全局变量的原因。 a.将复杂进程放入专用方法。 b.将专用方法中可能要修改的代码隔离。 c.将数据输入/输出(I/O)放入专用方法。 d.将业务规则封装在专用方法中。 e.有返回值的方法必须在方法命名里包含对该返回值的信息描述,如GetObjectStat()。 f.局部变量的声明,应尽可能紧靠在它首次被使用的地方 g.一个方法里的代码避免超过 25 行,最多不能超过 50 行(除去空行、注释) h.一行代码最多不要超过 80 个字符 i.避免使用强制转换,推荐使用as操作符进行防御性转换 j.当需要创建一个长字符串时,推荐使用StringBuilder,而非string k.避免使用不易理解的数字,用有意义的标识来替代(枚举和常量)13.属性设计避免使用返回数组的属性。这些属性会降低程序的效率 不要提供public或protected型的成员变量,而应当使用属性替代之