if(x==0)算法
{编程
Response.Write("用户编号必须输入!");架构
}ide
不容许如下状况:函数
if(x==0) {工具
Response.Write("用户编号必须输入!");开发工具
}this
或者:spa
if(x==0){ Response.Write("用户编号必须输入!");}设计
例:
int j = i + k;
而不该写为
int j=i+k;
使用下面的三种大写标识符约定。
Pascal 大小写
将标识符的首字母和后面链接的每一个单词的首字母都大写。能够对三字符或更多字符的标识符使用 Pascal 大小写。例如:
BackColor
Camel 大小写
标识符的首字母小写,而每一个后面链接的单词的首字母都大写。例如:
backColor
大写
标识符中的全部字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:
System.IO
System.Web.UI
可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中全部大写字母常常用于枚举和常数值。通常状况下,在使用它们的程序集以外这些字符应当是不可见的。
下表汇总了大写规则,并提供了不一样类型的标识符的示例。
标识符 |
大小写 |
示例 |
类 |
Pascal |
AppDomain |
枚举类型 |
Pascal |
ErrorLevel |
枚举值 |
Pascal |
FatalError |
事件 |
Pascal |
ValueChange |
异常类 |
Pascal |
WebException注意 老是以 Exception 后缀结尾。 |
只读的静态字段 |
Pascal |
RedValue |
接口 |
Pascal |
IDisposable注意 老是以 |
方法 |
Pascal |
ToString |
命名空间 |
Pascal |
System.Drawing |
参数 |
Camel |
typeName |
属性 |
Pascal |
BackColor |
受保护的实例字段 |
Camel |
redValue 注意 不多使用。属性优于使用受保护的实例字段。 |
公共实例字段 |
Pascal |
RedValue 注意 不多使用。属性优于使用公共实例字段。 |
为了不混淆和保证跨语言交互操做,请遵循有关区分大小写的使用的下列规则:
namespace ee.cummings;
namespace Ee.Cummings;
void MyFunction(string a, string A)
Point p
和 POINT p
是不适当的类型名称,缘由是它们仅是大小写有区别。System.Windows.Forms.Point p
System.Windows.Forms.POINT p
int Color
和 int COLOR
是不适当的属性名称,缘由是它们仅是大小写有区别。int Color {get, set}
int COLOR {get, set}
calculate
和 Calculate
是不适当的方法名称,缘由是它们仅是大小写有区别。void calculate()
void Calculate()
为了不混淆和保证跨语言交互操做,请遵循有关区缩写的使用的下列规则:
GetWindow
,而不要使用 GetWin
。UI
做为 User Interface 的缩写,用 OLAP
做为 On-line Analytical Processing 的缩写。System.IO
,而不是 System.Io
。 组件类型 |
缩写 |
例子 |
Label |
Lbl |
lblNote |
TextBox |
Txt |
txtName |
Button |
Btn |
btnOK |
ImageButton |
Ib |
ibOK |
LinkButton |
Lb |
lbJump |
HyperLink |
Hl |
hlJump |
DropDownList |
Ddl |
ddlList |
CheckBox |
Cb |
cbChoice |
CheckBoxList |
Cbl |
cblGroup |
RadioButton |
Rb |
rbChoice |
RadioButtonList |
Rbl |
rblGroup |
Image |
Img |
imgBeauty |
Panel |
Pnl |
pnlTree |
TreeView |
Tv |
tvUnit |
WebComTable |
Wct |
wctBasic |
ImageDateTimeInput |
Dti |
dtiStart |
ComboBox |
Cb |
cbList |
MyImageButton |
Mib |
mibOK |
WebComm.TreeView |
Tv |
tvUnit |
PageBar |
Pb |
pbMaster |
命名命名空间时的通常性规则是使用公司名称,后跟技术名称和可选的功能与设计,以下所示。
CompanyName.TechnologyName[.Feature][.Design]
例如:
Microsoft.Media
Microsoft.Media.Design
给命名空间名称加上公司名称或者其余知名商标的前缀能够避免两个已经发布的命名空间名称相同的可能性。例如,Microsoft.Office
是由 Microsoft 提供的 Office Automation Classes 的一个适当的前缀。
在第二级分层名称上使用稳定的、公认的技术名称。将组织层次架构用做命名空间层次架构的基础。命名一个命名空间,该命名空间包含为具备 .Design
后缀的基命名空间提供设计时功能的类型。例如,System.Windows.Forms.Design 命名空间包含用于设计基于 System.Windows.Forms 的应用程序的设计器和相关的类。
嵌套的命名空间应当在包含它的命名空间中的类型上有依赖项。例如,System.Web.UI.Design 中的类依赖于 System.Web.UI 中的类。可是,System.Web.UI 中的类不依赖于 System.UI.Design 中的类。
应当对命名空间使用 Pascal 大小写,并用句点分隔逻辑组件,如 Microsoft.Office.PowerPoint
中所示。若是您的商标使用非传统的大小写,请遵循您的商标所定义的大小写,即便它与规定的 Pascal 大小写相背离。例如,命名空间 NeXT.WebObjects
和 ee.cummings
阐释了对于 Pascal 大小写规则的适当背离。
若是在语义上适当,使用复数命名空间名称。例如,使用 System.Collections
而不是 System.Collection
。此规则的例外是商标名称和缩写。例如,使用 System.IO
而不是 System.IOs
。
不要为命名空间和类使用相同的名称。例如,不要既提供 Debug
命名空间也提供 Debug
类。
最后,请注意命名空间名称没必要非得与程序集名称类似。例如,若是命名程序集 MyCompany.MyTechnology.dll
,它没有必要非得包含 MyCompany.MyTechnology
命名空间。
如下规则概述命名类:
C
前缀。例如,使用类名称 FileStream
,而不是 CFileStream
。ApplicationException
对于从名为 Exception
的类派生的类是适当的名称,缘由是 ApplicationException
是一种 Exception
。请在应用该规则时进行合理的判断。例如,Button
对于从 Control
派生的类是适当的名称。尽管按钮是一种控件,可是将 Control
做为类名称的一部分将使名称没必要要地加长。下面是正确命名的类的示例。
[Visual Basic]
Public Class FileStream
Public Class Button
Public Class String
[C#]
public class FileStream
public class Button
public class String
类成员变量加 m_ 前缀,如: int m_ContentLength。
如下规则概述接口的命名:
I
前缀,以指示该类型为接口。I
前缀。如下是正确命名的接口的示例。
[Visual Basic]
Public Interface IServiceProvider
Public Interface IFormatable
[C#]
public interface IServiceProvider
public interface IFormatable
如下代码示例阐释如何定义 IComponent 接口及其标准实现 Component 类。
[Visual Basic]
Public Interface IComponent
' Implementation code goes here.
End Interface
Public Class Component
Implements IComponent
' Implementation code goes here.
End Class
[C#]
public interface IComponent
{
}
public class Component: IComponent
{
// Implementation code goes here.
}
枚举 (Enum) 值类型从 Enum 类继承。如下规则概述枚举的命名指南:
Enum
后缀。如下规则概述静态字段的命名:
如下规则概述参数的命名:
如下是正确命名的参数的示例。
[Visual Basic]
GetType(typeName As String)As Type
Format(format As String, object [] args)As String
[C#]
Type GetType(string typeName)
string Format(string format, args() As object)
如下规则概述方法的命名:
如下是正确命名的方法的实例。
RemoveAll()
GetCharArray()
Invoke()
如下规则概述属性的命名:
如下代码示例阐释正确的属性命名。
[Visual Basic]
Public Class SampleClass
Public Property BackColor As Color
' Code for Get and Set accessors goes here.
End Property
End Class
[C#]
public class SampleClass
{
public Color BackColor
{
// Code for Get and Set accessors goes here.
}
}
如下代码示例阐释提供其名称与类型相同的属性。
[Visual Basic]
Public Enum Color
' Insert code for Enum here.
End Enum
Public Class Control
Public Property Color As Color
Get
' Insert code here.
End Get
Set
' Insert code here.
End Set
End Property
End Class
[C#]
public enum Color
{
// Insert code for Enum here.
}
public class Control
{
public Color Color
{
get {// Insert code here.}
set {// Insert code here.}
}
}
如下代码示例不正确,缘由是 Color 属性是 Integer 类型的。
[Visual Basic]
Public Enum Color
' Insert code for Enum here.
End Enum
Public Class Control
Public Property Color As Integer
Get
' Insert code here.
End Get
Set
' Insert code here.
End Set
End Property
End Class
[C#]
public enum Color {// Insert code for Enum here.}
public class Control
{
public int Color
{
get {// Insert code here.}
set {// Insert code here.}
}
}
在不正确的示例中,不可能引用 Color 枚举的成员。Color.Xxx
将被解释为访问一个成员,该成员首先获取 Color 属性(在 Visual Basic 中为 Integer 类型,在 C# 中为 int 类型)的值,而后再访问该值的某个成员(该成员必须是 System.Int32 的实例成员)。
如下规则概述事件的命名:
EventHandler
后缀。EventArgs
后缀命名事件参数类。Closing
事件和 Closed
事件。不要使用 BeforeXxx
/AfterXxx
命名模式。Close
,而不要使用 OnClose
。如下示例阐释具备适当名称和参数的事件处理程序。
public delegate void MouseEventHandler(object sender, MouseEventArgs e); [Visual Basic]
Public Delegate Sub MouseEventHandler(sender As Object, e As MouseEventArgs)
阐释正确命名的事件参数类。
[Visual Basic]
Public Class MouseEventArgs
Inherits EventArgs
Dim x As Integer
Dim y As Integer
Public Sub New MouseEventArgs(x As Integer, y As Integer)
me.x = x
me.y = y
End Sub
Public Property X As Integer
Get
Return x
End Get
End Property
Public Property Y As Integer
Get
Return y
End Get
End Property
End Class
[C#]
public class MouseEventArgs : EventArgs
{
int x;
int y;
public MouseEventArgs(int x, int y)
{ this.x = x; this.y = y; }
public int X { get { return x; } }
public int Y { get { return y; } }
}
注释规范包括:模块(类)注释规范、类的属性、方法注释规范、代码间注释
模块开始必须以如下形式书写模块注释:
///<summary>
///模块编号:<模块编号,能够引用系统设计中的模块编号>
///做用:<对此类的描述,能够引用系统设计中的描述>
///做者:做者中文名
///编写日期:<模块建立日期,格式:YYYY-MM-DD>
///</summary>
若是模块有修改,则每次修改必须添加如下注释:
///<summary>
///Log编号:<Log编号,从1开始一次增长>
///修改描述:<对此修改的描述>
///做者:修改者中文名
///修改日期:<模块修改日期,格式:YYYY-MM-DD>
///</summary>
在类的属性必须以如下格式编写属性注释:
/// <summary>
///属性说明
/// </summary>
在类的方法声明前必须以如下格式编写注释
/// <summary>
/// 说明:<对该方法的说明>
/// </summary>
/// <param name="<参数名称>"><参数说明></param>
/// <param name="<参数名称>"><参数说明></param>
/// <returns>
///<对方法返回值的说明,该说明必须明确说明返回的值表明什么含义>
/// </returns>
代码间注释分为单行注释和多行注释:
单行注释:
//<单行注释>
多行注释:
/*多行注释1
多行注释2
多行注释3*/
代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须可以说明此语句块的做用和实现手段(所用算法等等)。
异常的思想是只对错误采用异常处理:逻辑和编程错误,设置错误,被破坏的数据,资源耗尽,等等。一般的法则是系统在正常状态下以及无重载和硬件失效状态下,不该产生任何异常。