隐士草拟的一份C#编码规范,如欲转载,请注明来源http://blog.csdn.net/nethermit/,欢迎大家和我讨论,隐士思考还不成熟,欢迎拍砖。贴过来,格式有些被破坏了,各位海涵。
- 类名(class)命名规范
●类名必须可以清晰反映该类的基本功能。
●类名由英文字母和数字组成,如无必要不要引入数字。
●英文字母必须由完整的英文单词组成,以名词结尾,不得使用英文缩写,如:MN(MovieName), UN(UserName),除非该缩写众所周知,如:ID, URL, HTML, XML
●名字可以有2-5个单词组成,但通常不应多于5个。
●类名采用首字母大写的驼峰命名法。
●例:VideoClipView, MovieNameValidator - 命名空间名(namespace)命名规范
●命名空间名同类名命名规范。 - 常量名(const)命名规范
●常量名必须可以清晰反映该常量的意义。
●常量名单词之间由下划线分隔,其他同类名命名规范。
●例: MAX_LENGTH_OF_QUERY_STRING, DEFAULT_ACTION - 成员变量名(property)命名规范
●成员变量名必须可以清晰反映该成员变量的意义。
●public的成员变量名命名规范参照类名命名规范。
●protected, private的成员变量名命名规范参照类名命名规范,但首字母小写。
●例:public int UserID, public string MovieName, private int videoClipScore, private string commentThreadTitle - 成员方法名(method)命名规范
●成员方法名必须可以清晰反映该成员方法的意义。
●成员方法名命名规范参照类名命名规范。
●例:public int GetNumberOfUsers(), private bool UpdatePersonatorByID(bool personatorID) - 局部变量名(local variable)命名规范
●局部变量名在不影响可读性的情况下,可以写得简略些,但必须有注释
●如局部变量名可以清晰反映该局部变量的意义,可以省略注释。
●某些众所周知的变量名可以不需注释,如:循环变量i, j, k
●局部变量名命名规范参照类名命名规范,但首字母小写。
●对于bool类型,局部变量名务必明确指出true, false的含义,不可含义不清。
●例:int sizeOfPage, bool hasChildren, bool isMale - 接口名(interface)命名规范
●接口名除在名称前加上大写字母I外同类名命名规范。
●例:IFileAnalyzer, IDataObjectProcessor - 控件名(component)命名规范
●控件名必须以该控件类名小写缩写开头,为缩短控件名长度而又不至于引起误读,该所写由类名除最后一个单词外的所有单词首字母加最后一个单词组成,如:Label => label, CheckBox => cbox, TextBox => tbox, Button => button, ListBox => lbox, DropDownList => ddlist
●其余同类名命名规范。
●例:lableUserName, tboxMovieName - 代码格式
●代码格式按照VS.net默认格式
●一行代码长度以不超出编辑器窗口为宜
●一行只放一个语句,避免多个语句写在一行里,方便读代码、调试、版本比较。
●一个方法(method)原则上接受0-6个参数,如参数过多,考虑拆分为几个方法。
●一个方法(method)原则上不应超过100行,如过长,考虑拆分为几个方法。
●一个类(class)原则上不应超过1000行,如过长,考虑拆分为几个类的继承、组合。 - 类层次
●抽象类的类名以Abstract开头。
●父类名必须能都代表所有子类的共性,如:WebControl是CheckBox, TextBox的父类,WebControl代表了其子类的共性Web控件。
●接口名能够表达接口内的所有方法的共性。