为了统一代码风格,减少代码阅读难度,提高代码质量,大家写代码的时候需要遵循以下的规则
1、 winform控件命名规范
数据类型 | 数据类型简写 | 标准命名举例 |
Label | lbl | lblMessage |
LinkLabel | llbl | llblToday |
Button | btn | btnSave |
TextBox | txt | txtName |
MainMenu | mmnu | mmnuFile |
ToolStripMenuItem | tsmi | tsmiItem |
ToolStripStatusLabel | tssl | tsslItem |
NumericUpDown | nud | nudItem |
ProgressBar | Pgb | pgbItem |
CheckBox | chk | chkStock |
RadioButton | rbtn | rbtnSelected |
GroupBox | gbx | gbxMain |
PictureBox | pic | picImage |
Panel | pnl | pnlBody |
DataGrid | dgrd | dgrdView |
ListBox | lst | lstProducts |
CheckedListBox | clst | clstChecked |
ComboBox | cbo | cboMenu |
ListView | lvw | lvwBrowser |
TreeView | tvw | tvwType |
TabControl | tctl | tctlSelected |
DateTimePicker | dtp | dtpStartDate |
HscrollBar | hsb | hsbImage |
VscrollBar | vsb | vsbImage |
Timer | tmr | tmrCount |
ImageList | ilst | ilstImage |
ToolBar | tlb | tlbManage |
StatusBar | stb | stbFootPrint |
OpenFileDialog | odlg | odlgFile |
SaveFileDialog | sdlg | sdlgSave |
FoldBrowserDialog | fbdlg | fgdlgBrowser |
FontDialog | fdlg | fdlgFoot |
ColorDialog | cdlg | cdlgColor |
PrintDialog | pdlg | pdlgPrint |
2、 命名空间命名
命名名称空间的一般规则如下: CompanyName.TechnologyName
例如:Tempus. BesToneWS
现在系统里所有的命名空间都未按照此标准,今后将会进行统一的调整
3、类和类成分的命名
类的命名原则是用名词或名词短语命名类,使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C),不要使用带下划线的字符。
例如:public class FileStream {}
public class Button{}
public class String{}
4、变量的命名
名称中第一个单词为小写,其他各单词首字母均为打大写
例如:findLastRecord
redrawMyForm
5、函数和方法的命名
函数和方法的命名应该以动词开始,使用Pascal大写。不要使用带下划线的字符。
例如:InitNameArray
CloseDialog
6、接口命名原则
使用名词或名词短语,或者描述行为的形容词来命名接口,使用Pascal大写。 减少接口名中缩写的使用量,在接口名前加前缀I,以表示这个类型是一个接口。
例如: IComponent(描述性名词)
ICustomAttributeProvider(名词短语)
IPersistable(形容词)
7、参数的命名
使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。根据参数的意思来命名参数,而不是根据参数的种类来命名。
例如:Type GetType (stringtypeName)
8、属性的命名
用名词或名词短语命名属性,属性与类型要一样。 用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。
例如:public enum Color{...}
public class Control{
public Color Color{get {...} set {...}}
}
9、事件的命名
用EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。
例如:public delegate voidMouseEventHandler(object sender, MouseEvent e);
命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\\AfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。
10、长项和常用项的命名
可使用缩写使名称长度适中,通常,多于 32 个字符的变量名在低分辨率的监视器上难以阅读。同时,请确保缩写在整个应用程序中保持一致。
例如:可以使用“HTML”代替“HyperText MarkupLanguage”。
11、代码书写格式规范
- 文件之中不得存在无规则的空行,比如说连续十个空行。一般来讲函数与函数之间的空行为2-3行。
- 在函数体内部,在逻辑上独立的两个函数块可适当空行,一般为1-2行。
- 每行长度尽量避免超过屏幕宽度,应不超过80个字符。
- 尽量用公共过程或子程序去代替重复的功能代码段。
- 使用括号清晰地表达算术表达式和逻辑表达式的运算顺序。如将 x=a*b/c*d 写成 x=(a*b/c)*d可避免阅读者误解为x=(a*b)/(c*d)。
- 避免采用过于复杂的条件测试。
- 避免过多的循环嵌套和条件嵌套。
- 一个函数不要超过200行。一个文件应避免超过2000行。
- 避免使用goto语句。
- 避免采用多赋值语句,如x = y = z;。
12、代码注释规范 .cs文件的注释 //********************************************************* //新增日期:2013-4-23 //内容说明:***** //作者:** //*********************************************************
13、函数注释 所有的函数体开头都要加上注释
|