程序员规范附录A C#编码规范Word格式.docx
- 文档编号:21450991
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:9
- 大小:19.19KB
程序员规范附录A C#编码规范Word格式.docx
《程序员规范附录A C#编码规范Word格式.docx》由会员分享,可在线阅读,更多相关《程序员规范附录A C#编码规范Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
else
DoSomethingElse();
“case”statementsshouldbeindentedfromtheswitchstatementlikethis:
switch(someExpression)
case0:
break;
case1:
case2:
{
intn=1;
DoAnotherThing(n);
}
3.3注释(Commenting)
注释应该描述代码的目的、算法和逻辑流程。
理想状况下,通过注释可以直接了解一个模块、函数或代码块的设计意图和实现手段。
3.3.1模块(类)注释
模块开始必须以以下形式书写模块注释:
///<
summary>
///模块编号:
<
模块编号,可以引用系统设计中的模块编号>
///作用:
对此类的描述,可以引用系统设计中的描述>
///作者:
作者中文名
///编写日期:
模块创建日期,格式:
YYYY-MM-DD>
/summary>
如果模块有修改,则每次修改必须添加以下注释:
///Log编号:
Log编号,从1开始一次增加>
///修改描述:
对此修改的描述>
修改者中文名
///修改日期:
模块修改日期,格式:
////<
3.3.2类属性注释规范
在类的属性必须以以下格式编写属性注释:
///属性说明
3.3.3方法注释规范
在类的方法声明前必须以以下格式编写注释
///说明:
对该方法的说明>
///<
paramname="
参数名称>
"
>
参数说明>
/param>
returns>
对方法返回值的说明,该说明必须明确说明返回的值代表什么含义>
/returns>
3.3.4代码间注释规范
代码间注释分为单行注释和多行注释:
单行注释:
//<
单行注释>
多行注释:
/*多行注释1
多行注释2
多行注释3*/
代码中遇到语句块时必须添加注释(if,for,foreach,……),添加的注释必须能够说明此语句块的作用和实现手段(所用算法等等)。
3.4空格(Spacing)
空格可以通过降低代码密度来提高代码的可读性,下面是一些空格的使用范例:
●在函数调用需要多个参数时,每个参数的“,”后使用1个空格
√:
Console.In.Read(myChar,0,1);
×
:
Console.In.Read(myChar,0,1);
●在调用函数时,(与参数之间不要使用空格
CreateFoo(myChar,0,1)
CreateFoo(myChar,0,1)
●函数名和(之间不要使用空格
CreateFoo()
CreateFoo()
●[]内不要使用空格
x=dataArray[index];
x=dataArray[index];
●在控制字符后使用1个空格
while(x==y)
while(x==y)
●在比较操作两边各使用1个空格
if(x==y)
if(x==y)
3.5命名(Naming)
3.5.1大小写约定
使用下面的三种大写标识符约定。
●Pascal大小写
将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal大小写。
BackColor
●Camel大小写
标识符的首字母小写,而每个后面连接的单词的首字母都大写。
backColor
●大写
标识符中的所有字母都大写。
仅对于由两个或者更少字母组成的标识符使用该约定。
System.IO
System.Web.UI
3.5.2类(Class)命名规范
●使用名词或名词短语命名类。
●使用Pascal大小写。
●少用缩写。
●不要使用类型前缀,如在类名称上对类使用C前缀。
例如,使用类名称FileStream,而不是CFileStream。
●不要使用下划线字符(_)。
●有时候需要提供以字母I开始的类名称,虽然该类不是接口。
只要I是作为类名称组成部分的整个单词的第一个字母,这便是适当的。
例如,类名称IdentityStore就是适当的。
●在适当的地方,使用复合单词命名派生的类。
派生类名称的第二个部分应当是基类的名称。
例如,ApplicationException对于从名为Exception的类派生的类是适当的名称,原因是ApplicationException是一种Exception。
请在应用该规则时进行合理的判断。
例如,Button对于从Control派生的类是适当的名称。
尽管按钮是一种控件,但是将Control作为类名称的一部分将使名称不必要地加长。
下面是正确命名的类的示例。
publicclassFileStream
publicclassButton
publicclassString
3.5.3接口(Interface)命名规范
用名词或名词短语,或者描述行为的形容词命名接口。
例如,接口名称IComponent使用描述性名词。
接口名称ICustomAttributeProvider使用名词短语。
名称IPersistable使用形容词。
●给接口名称加上字母I前缀,以指示该类型为接口。
●在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。
两个名称的区别应该只是接口名称上有字母I前缀。
以下是正确命名的接口的示例。
publicinterfaceIServiceProvider
publicinterfaceIFormatable
以下代码示例阐释如何定义IComponent接口及其标准实现Component类。
publicinterfaceIComponent
//Implementationcodegoeshere.
publicclassComponent:
IComponent
3.5.4字段(Field)命名规范
●使用名词、名词短语或者名词的缩写命名字段。
●公共变量使用Pascal大小写。
●常量名必须可以清晰反映该常量的意义。
●常量名单词之间由下划线分隔,其他同类名命名规范。
以下是正确命名的常量的示例。
MAX_LENGTH_OF_QUERY_STRING
DEFAULT_ACTION
●私有字段使用Camel大小写。
●不要在字段名称中使用匈牙利语表示法的前缀。
3.5.5属性(Property)命名规范
●使用名词或名词短语命名属性。
●不要使用匈牙利语表示法。
●考虑用与属性的基础类型相同的名称创建属性。
例如,如果声明名为Color的属性,则属性的类型同样应该是Color。
请参见本主题内下文中的示例。
以下代码示例阐释正确的属性命名。
publicclassSampleClass
publicColorBackColor
//CodeforGetandSetaccessorsgoeshere.
以下代码示例阐释提供其名称与类型相同的属性。
publicenumColor
//InsertcodeforEnumhere.
publicclassControl
publicColorColor
{
get{//Insertcodehere.}
set{//Insertcodehere.}
3.5.6方法(Method)命名规范
●使用动词或动词短语命名方法。
以下是正确命名的方法的实例。
RemoveAll()
GetCharArray()
3.5.7事件(Event)命名规范
●对事件处理程序名称使用EventHandler后缀。
●指定两个名为sender和e的参数。
sender参数表示引发事件的对象。
sender参数始终是object类型的,即使在可以使用更为特定的类型时也如此。
与事件相关联的状态封装在名为e的事件类的实例中。
对e参数类型使用适当而特定的事件类。
●用EventArgs后缀命名事件参数类。
●考虑用动词命名事件。
例如,命名正确的事件名称包括Clicked、Painting和DroppedDown。
●使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。
例如,可以取消的Close事件应当具有Closing事件和Closed事件。
不要使用BeforeXxx/AfterXxx命名模式。
●不要在类型的事件声明上使用前缀或者后缀。
例如,使用Close,而不要使用OnClose。
●通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为OnXxx)。
此方法只应具有事件参数e,因为发送方总是类型的实例。
以下示例阐释具有适当名称和参数的事件处理程序。
publicdelegatevoidMouseEventHandler(objectsender,MouseEventArgse);
以下示例阐释正确命名的事件参数类。
publicclassMouseEventArgs:
EventArgs
intx;
inty;
publicMouseEventArgs(intx,inty)
this.x=x;
this.y=y;
publicintX
get{returnx;
}
}
publicintY
get{returny;
3.5.8参数(Parameter)命名规范
●对参数名称使用Camel大小写。
●使用描述性参数名称。
参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。
例如,提供上下文相关帮助的可视化设计工具会按开发人员键入的实际内容显示方法参数。
在这种情况下,方法参数名称的表述必须清楚明白,开发人员才能提供正确的参数。
●使用描述参数的含义的名称,而不要使用描述参数的类型的名称。
开发工具将提供有关参数的类型的有意义的信息。
因此,通过描述意义,可以更好地使用参数的名称。
少用基于类型的参数名称,仅在适合使用它们的地方使用它们。
●不要使用保留的参数。
保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。
相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。
●不要给参数名称加匈牙利语类型表示法的前缀。
以下是正确命名的参数的示例。
TypeGetType(stringtypeName)
stringFormat(stringformat,object[]args)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序员规范附录A C#编码规范 程序员 规范 附录 C# 编码
![提示](https://static.bdocx.com/images/bang_tan.gif)