.NET 代码和界面规范
一、 目的
(1) (2) (3) (4) 为了统一公司软件开发设计过程的编程规范 使网站开发人员能很方便地理解每个目录、变量、控件、类、方法的意义 保证编写出的
程序都符合相同的规范,保证一致性,统一性 编码规范和约定必须能明显改善代码的可读性,并有助于代码管理、分类规范 适用于企业所有基于.NET 平台的
软件开发
工作 二、 代码规范
1. 必须遵守的规范(Rules) 必须遵守的规范( )
(1) 局部变量的名称要有意义,尽量用对应的英文命名,比如“用户”变量, 不要用 aa、bb、cc 等来命名,而要使用 userName。 (2) 不要使用单个字母的变量,如 i、n、x 等,而要使用 index、temp 等。用于循环 迭代的变量例外 (3) 应该使用 Pascal 命名方法名、属性名、类名和命名空间,且方法的命名一般将 其命名为动宾短语,如: ShowDIalog() ; CreateFile(); GetPath(); (4) 用 Gamel 命名法命名局部变量和方法的参数 以上几条综合举例如下: Public class Person { Private string firstName; //使用 Camel 方式命名 Public string FirstName() //使用 Pascal 方式命名 { get() set() } Public void DoSomething() //使用动宾短语作为方法名 { } Public void Buy(string productName) { } } (5) 仅使用匈牙利命名方法对 WinForms 和 Web 控件命名,禁止使用 textbox1、 gridview1 等默认命名,统一的控件前缀见该附录的后面部分 (6) 接口名称以大写 I 作为前缀,如 Isortable,以便直观地区分接口和类。 (7) 使用名字空间的层次性结构来组织各种类和接口
1
正确: using MyOfficeDAL namespace MyOfficeBLL { … } 错误: using MyOfficeDAL namespace MyOfficeBLL { …. } (8) 所有代码必须有足够的注释,注释要求在 15%以上。需要注释的内容包括以下 几种: ① 关键性语句(如关键的变量声明,条件判断等) ② 类名前的
文档注释(以///开头的注释)包括类的简单功能说明、使用方法等。 ③ 具有复杂参数列表的方法 (9) 代码缩进用 Tab 键,不要用空格键
2. 指导性规范(Guidelines) 指导性规范( )
(1) (2) (3) (4) (5) (1) 对于超过 3 屏式以上的代码,建议使用 region 折叠 Web 窗体建议以 div 方式布局 代码中 DataSet、DataTable、DataView 等对象,定义时建议将 ds、dt、dv 作为前 缀。 在一个自定义的类中,建议将类中各成员有规律地组织起来。从上至下的顺序: 常量、变量、属性、公有方法、私有方法。可以将每个部分用 region 划分开。 if/foreach/switch 语句的嵌套不宜太多,建议不超过 3 层 避免写太长的方法。一个典型的方法代码应该控制在 100 行以内(包括注释、空 行、括号占用的独立一行等) 。一个方法的代码
如果超过 100 行,应该考虑将其分 解为不同的方法。 一个方法只完成一个任务。不要把太多的任务组合到一个方法中,基石那些任务 非常小。 控件名称 Lable TextBox Button LinkButton ImageButton ListBox DropDownList DataGrid DataList CheckBox lbl txt btn lnkbtn imgbtn lst ddl dg dl chk
2
3. 最佳实践(Best Practices) 最佳实践( )
(2)
4. 控件命名规范
简写(前缀)
CheckBoxList RadionButton RadionButtonList Image Panel Calender AdRotator Table RequiredFieldValidator CompareValidator RangeValidator RegularExpressionValidator ValidatorSummary CrystalReportViewer ComboBox DataGridView DataGridViewde 的 Column GroupBox ImageList ListView ListView 的 ColumnHeader MenuStrip ToolStripMenuItem PictureBox StatusStrip StatusLabel TabControl TabPage Timer ToolStrip ToolStripLabel ToolStripButton ToolStripDropDownButton DomainUpDown TreeView WebBrowser ObjectDataSource FileUpload HiddenField GridView PagedDataSource Repeater
chklst rdo rdolst im