软件代码编写规范_第1页
软件代码编写规范_第2页
软件代码编写规范_第3页
软件代码编写规范_第4页
软件代码编写规范_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件代码编写规范

草稿

2005.2

1命名规则

1.1.Net命名规则

一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将消除许多最

常见的用户问题。本主题提供.NETFramework类型的命名指南。对于每一个类型,还应该注意关F大写样式、区分大

小写和措词的一些通用规则。

1.L1大写样式

描述用于在类库中命名标识符的Pascal大小写、Camel大小写和全部大写样式。

使用下面的三种大写标识符约定。

Pascal大小写

将标识符的首字母和后面连接的每一个单词的首字母都大写。可以对三字符或者更多字符的标识符使用Pascal大小写。

例如:

BackColor

Camel大小写

标识符的首字母小写,而每一个后面连接的单词的首字母都大写。例如:

backColor

大写

标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:

System.10

System.Web.UI

可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母时常用于枚举和常数值。普通

情况下,在使用它们的程序集之外这些字符应当是不可见的。

下表汇总了大写规则,并提供了不同类型的标识符的示例。

标识符大小写示例

类PascalAppDomain

枚举类型PascalErrorLevel

枚举值PascalFatalError

事件PascalValueChange

异常类PascalWebException

注意总是以Exception后级结尾"

只读的静态字段PascalRedValue

接口PascalIDisposable

注意总是以I前缀开始。

方法Pasca.ToString

命名空间PascalSystem.Drawing

参数CameltypeName

屈性PascalBackColor

22

受保护的实例字段CamelredValue

注意很少使用。属性优丁•使用受保护的实例字段。

公共实例字段PascalRedValue

注意很少使用。属性优于使用公共实例字段。

1.1.2区分大小写

为了避免混淆和保证跨语宫交互操作,请遵循有关区分大小写的使用的下列规则:

不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须彻底可以使用。不区分

大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或者类中必须避免这种情况。

不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。

namespaceee.cummings:

namespaceEe.Cununings;

不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的。

voidMyEunction(stringa,stringA)

不要创建具有仅是大小写有区别的类型名称的命名空间。在下面的示例中,Pointp和POINTp是不适当的类

型名称,原因是它们仅在大小写方面有区别。

System.Windows.Forms.Pointp

System.Windows.Forms.POINTp

不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,intColor和intCOLOR是不适当的属

性名称,原因是它们仅在大小写方面有区别。

intColor{get,set)

intCOLOR{get,set)

不要创建具有仅是大小写有区别的方法名称的类型。在〈面的示例中,calculate和Calculate是不适当的方

法名称,原因是它们仅在大小写方面有区别。

voidcalculateO

voidCalculateO

1.1.3缩写

为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:

不要将缩写或者缩略形式用作标识符名称的组成部份。例如,使用GetWindow,而不要使用GelWin。

不要使用计算机领域中未被普遍接受的缩写。

在适当的时候,使用众所周知的缩写替换冗长的词组名称.例如,用UI作为UserInterface的缩写,用OLAP

作为On-lineAnalyticalProcessing的缩写。

在使用缩写时,对于超过两个字符长度的缩写,请使用Pascal大小写或者Camel大小写。例如,使用

HtmlButton或者htirlButtono但是,应当大写仅有两个字符的缩写,如,System.10,而大是System.Io«

不要在标识符或者参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用Camel

大小写,虽然这和单词的标准缩写相冲突。

22

1.1.4措词

避免使用与常用的.NETFramework命名空间重复的类名称。例如,不要将以卜任何名称用作类名称:System.

Collections,Forms或者UL有关.NETFramework命名空间的列表,请参见类库。

此外,避免使用和以卜.关键字冲突的标识符。

AddHandlerAddressOfAliasAndAnsi

AsAssemblyAutoBaseBoolean

ByRefByteByVaiCallCase

CatchCBoolCByteCCharCDate

CDecCDblCharCIntClass

CLngCObjConstCShortCSng

CStrCTypeDateDecimalDeclare

Default

1.1.5避免类型名称混淆

语言

不同的编程语言使用不同的术语标识基本托管类型。类库设计人员必须避免使用语言特定的术语。请遵循本节中描述的

规则以避免类型名称混淆。

使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那末在这种罕见的

情况下请使用普通性名称。例如,支持将各种数据类型写入到流中的类可以有以下方法。

[VisualBasic]

SubWrite(valueAsDouble);

SubWrite(valueAsSingle);

SubWrite(valueAsLong);

SubWrite(valueAsInteger);

SubWrite(valueAsShort);

[C#]

voidWrite(doublevalue);

voidWrite(floatvalue):

voidWrite(longvalue):

voidWrite(intvalue);

voidWrite(shortvalue):

不要创建语言特定的方法名称,如下面的示例所不。

[VisualBasic]

SubWrite(doubleValueAsDouble);

SubWrite(singleValueAsSingle);

SubWrite(longValueAsLong);

SubWrite(integerValueAsInteger);

SubWrite(shortValueAsShort);

[C#]

voidWrite(doubledoubleValue);

22

voidWrite(floatfloatValue);

voidWrite(longlongValuc);

voidWrite(intiniValue);

voidWrite(shortshortValue):

如果有必要为每一个基本数据类型创建惟一命名的方法,那末在这种极其罕见的情况下请使用通用类型名称。下表列出

基

本数据类型名称和它们的通用替换。

C#类型名称VisualBasic类型JScript类型名称VisualC++类型名Ilasnexe表示形式通用类型名称

名称称

sbyteSBytesBytecharint8SByte

byteBytebyteunsignedcharunsignedint8Byte

shortShortshortshortint16Int16

ushortUIntl6ushortunsignedshortunsignedintl6UIntl6

intIntegerintintint32Int32

uintUInt32uintunsignedintunsignedint32UInt32

longLonglong_int64int64Int64

ulongUInt64ulongunsigned_int64unsignedint64UInt64

floatSinglefloatfloatfloat32Single

doubleDoubledoubledoublefloat64Double

boolBooleanbooleanboolboolBoolean

charCharcharwchar_tcharChar

stringStringstringStringstringString

objectObjectobjectObjectobjectObject

例如,支持将从流读取各种数据类型的类可以有以下方法。

[VisualBasic]

RcadDoublcOAsDouble

ReadSingleOAsSingle

ReadInt640AsLong

ReadInt32()AsInteger

ReadIntl6()AsShort

[C#]

doubleReadDoubleO:

floatReadSingleO;

longReadlnt64();

intReadlnt32();

shortReadInt16();

上面的示例优先于下面的语言特定的替代方法。

[VisualBasic]

ReadDoubleOAsDouble

ReadSingleOAsSingle

ReadLong()AsLong

Readinteger()AsInteger

ReadShort()AsShort

[Cit]

22

doubleReadDoubleO;

floatRead!'1oat();

longReadLong();

intReadInt();

shortReadShort();

1.1.6命名空间命名指南

命名命名空间时的普通性规则是使用公司名称,后跟技术名称和可选的功能与设口,如下所示。

CompanyName.TechnologyName[.Feature][.Design]

例如:

Microsoft.Media

Microsoft.Media.Design

给命名空间名称加之公司名称或者其他知名商标的前缀可以避免两个已经发布的命名空间名称相同的可能性。例如,

Microsoft.Office是由Microsoft提供的OfficeAutomationClasses的一个适当的前缀。

在第:级分层名称上使用稔定的、公认的技术名称。将组织层次契构用作命名空间层次架构的基础。命名一个命名空间,

该命名空间包含为具有.Design后缀的基命名空间提供设计时功能的类型。例如,System.Windows.Forms.Design命名

空间包含用于设计基于System.Windows.Forms的应用程序的设计器和相关的类。

嵌套的命名空间应当在包含它的命名空间中的类型上有依赖项。例如,System.Web.UI.Design中的类依赖于

System.Web.UI中的类。但是,SystentWeb.UI中的类不依赖于System.Web.UI.Design中的类。

应当对命名空间使用P-T小写,并用句点分隔逻辑组件,如Vicroso「l.O(Tice.PowerPoinl中所示。如果您的商

标使用非传统的大小写,请遵循您的商标所定义的大小写,即使它与规定的Pascal大小写相背离。例如,命名空间

NeXT.WebObjects和ee.cummings阐释了对于Pascal大小写规则的适当背离。

如果在语义上适当,使用复数命名空间名称。例如,使用Sysicm.Collections而不是System.Collection,>此规则的

例外是商标名称和缩写。例如,使用System.10而不是System.I0s»

不要为命名空间和类使用相同的名称。例如,不要既提供Debug命名空间也提供Debug类。

最后,请注意命名空间名称不必非得与程序集名称相似。例如,如果命名程序集MyCompany.MyTechnology.dll,它没有

必要非得包含MyCompany.MyTechnology命名空间。

推荐使用的命名空间

ISCAS.IEL.MES.ChangLian.MaterBalance

IEL.MES.ChangLian.MaterialBalance

1.1.7类命名指南

以下规则概述命名类的指南:

使用名词或者名词短语命名类。

使用

少用缩写。

不要使用类型前缀,如在类名称上对类使用C前缀。例如,使用类名称FileStream,而不是CFileStream0

不要使用下划线字符O。

有时候需要提供以字母I开始的类名称,虽然该类不是接口。只要I是作为类名称组成部份的整个单词的第

一个字母,这便是适当的。例如,类名称Identitystore就是适当的。

22

在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部份应当是基类的名称。例如,

ApplicationException对于从名为Exception的类派生的类是适当的名称,原因是ApplicationException

是一种Exception。请在应用该规则时进行合理的判断。例如,Button对于从Control派生的类是适当的名

称。尽管按钮是一种控件,但是将Control作为类名称的一部份将使名称不必要地加长。

下面是正确命名的类的示例。

[VisualBasic]

PublicClassFileStream

PublicClassButton

PublicClassString

㈣

publicclassFileStream

publicclassButton

publicclassString

1.1.8接口命名指南

以卜规则概述接口的命名指南:

用名词或者名词短语,或者描述行为的形容词命名接口。例I如,接口名称【Component使用描述性名词。接口名

称ICustomAttributeProvider使用名词短语。名称IPersistable使用形容词。

使用Pascal大小写。

少用缩写。

给接口名称加之字母I前缀,以指示该类型为接口。

在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母I前缀。

不要使用下划线字符(_)<.

以下是正确命名的接口的示例。

[VisualBasic]

PublicInterfaceIServiceprovider

PublicInterfaceIFormatable

[C#]

publicinterface1ServiceProvider

publicinterfaceIFormatable

以下代码示例阐释如何定义IComponent接口及其标准实现Component类。

[VisualBasic]

PublicInterfaceIComponent

'Implementationcodegoeshere.

EndInterface

PublicClassComponent

ImplementsIComponent

'Implementationcodegoeshere.

EndClass

[C划

publicinterfaceIComponent

22

//Implementationcodegoeshere.

}

publicclassComponent:IComponent

(

//Implementationcodegoeshere.

1.1.9属性命名指南

应该总是将后缀Attribute添加到H定义属性类。以下是正确命名的属性类的示例。

[VisualBasic]

PublicClassObsoleteAttribute

[C#]

publicclassObsoleteAttribute。

1.1.10枚举类型命名指南

枚举(Enum)值类型从Enum类继承。以下规则概述枚举的命名指南:

对于Enum类型和值名称使用RM。小区

少用缩写。

不要在Enum类型名称上使用Enum后缀。

对大多数Enum类型使用单数名称,但是对作为位域的Enum类型使用豆数名称。

总是将FlagsAttribute添加到位域Enum类型。

1.1.11静态字段命名指南

以下规则概述静态字段的命名指南:

使用名词、名词短语或者名词的缩写命名静态字段。

使用Pascal大小写一

不要在静态字段名称中使用匈牙利语表示法的前缀。

建议尽可能使用静态属性而不是公共静态字段。

1.1.12参数命名指南

必须子细遵守这些参数的命名指南,这非常重要,因为提供上下文相关匡助和类浏览功能的可视化设计工具会在设计器

中对用户显示方法参数名称。以下规则概述参数的命名指南:

对■参数名称使用Q皿。1大小“,

使用描述性参数名称。参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定

它的含义。例如,提供上卜文相关匡助的可视化设计工具会按开.辟人员健入的实际内容显示方法参数。在这种

情况下,方法参数名称的表述必须清晰明白,开辟人员才干提供正确的参数。

22

使用描述参数的含义的名称,而不要使用描述参数的类型的名称。开辟工具将提供有关参数的类型的故意义的

信息。因此,通过描述意义,可以更好地使用参数的名称。少用基于类型的参数名称,仅在适合使用它们的地

方使用它们。

不要使用保留的参数。保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。相反,如果在类库

的未来版本中需要更多的数据,请为方法添加新的重载。

不要给参数名称加匈牙利语类型表示法的前缀。

以下是正确命名的参数的示例。

[VisualBasic]

GetType(typeNameAsString)AsType

Format(formatAsString,argsOAsobject)AsString

[C#]

TypeGetTypc(stringtypeNane)

stringFormat(stringformat,objectt.args)

1.1.13方法命名指南

以下规则概述方法的命名指南:

使用动词或者动词短语命名方法。

,使用p.c]小[

以卜是正确命名的方法的实例。

RemoveAll()

GetCharArray()

Invoke()

L1.14属性命名指南

以下规则概述属性的命名指南:

使用名词或者名词短语命名属性。

使用Pa力1关:/卜j』

不要使用匈牙利语表示法。

考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为81。】•的属性,则属性的类型同样应该是

Coloro请参见本主题内下文中的示例。

以下代码示例阐释正确的属性命名.

[VisualBasic]

PublicClassSampledass

PublicPropertyBackColorAsColor

'CodeforGetandSetaccessorsgoeshere.

EndProperty

EndClass

[C#]

publicclassSampledass

publicCoIorBackColor

22

//CodeforGetandSetaccessorsgoeshere.

以下代码示例阐释提供其名称与类型相同的属性。

[VisualBasic]

PublicEnumColor

'InsertcodeforEnumhere.

EndEnum

PublicClassControl

PublicPropertyColorAsColor

Get

'Insertcodehere.

EndGet

Set

'Insertcodehere.

EndSet

EndProperty

EndClass

[C#]

publicenumColor

(

//InsertcodeforEnuirhere.

)

publicclassControl

(

publicColorColor

{

get{//Insertcodehere.}

set{//Insertcodehere.)

)

}

以下代码示例不正确,原因是Color属性是Integer类型的。

[VisualBasic]

PublicEnumColor

,InsertrndpforEnumhare.

EndEnum

PublicClassControl

PublicPropertyColorAsInteger

Get

'Insertcodehere.

EndGet

Set

'Insertcodehere.

22

EndSet

EndProperty

EndClass

[C#]

publicenumColor{//InsertcodeforEnumhere.}

pub1icclassControl

(

publicintColor

{

get{//Insertcodehere.}

set{//Insertcodehere.)

)

}

在不正确的示例中,不可能引用Color枚举的成员。Color.Xxx将被解释为访问一个成员,该成员首先获取Color属

性(在VisualBasic中为Integer类型,在C#中为int类型)的值,然后再访问该值的某个戌员(该成员必须是

System.Int32的实例成员)。

1.1.15事件命名指南

以下规则概述事件的命名指南:

使用Ra――一£小匕

不要使用匈牙利语表示法。

对事件处理程序名称使用Eventllandler后缀。

指定两个名为sender和e的参数。sender参数表示引起事件的对象。sender参数始终是object类型的,

即使在可以使用更为特定的类型时也如此。与事件相关段的状态封装在名为e的事件类的实例中。对e参数

类型使用适当而特定的事件类。

用EventArgs后缀命名事件参数类。

考虑用动词命名事件。例如,命名正确的事件名称包括Clicked.Painting和DroppedDown.,

使用动名词(动词的"ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例如,可以取销

的Close事件应当具有Closing事件和Closed事件,不要使用BeforeXxx/AfterXxx命名模式。

不要在类型的事件声明上使用前缀或者后缀。例如,使用Close,而不要使用OnClose.

通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为OnXxx)。此方法只

应具有事件参数e,因为发送方总是类型的实例。

以下示例阐释具有适当名称和参数的事件处理程序。

[VisualBasic]

PublicDelegateSubMouseEventHandler(senderAsObject,eAsMouseEvent/\rgs)

g

publicdelegatevoidMouseEventHandler(objectsender,MouseEventArgse);

以下示例阐释正确命名的事件参数类。

[VisualBasic]

PublicClassMouseEventArgs

InheritsEventArgs

DimxAsInteger

DimyAsInteger

22

PublicSubNewMouseEventArgs(xAsInteger,yAsInteger)

me.x=x

me.y=y

EndSub

PublicPropertyXAsInteger

Get

Returnx

EndGel

EndProperty

PublicPropertyYAsInteger

Get

Returny

EndGet

EndProperty

EndClass

[C#]

publicclassMouseEventArgs:EventArgs

(

intx;

inty;

publicMouseEventArgs(intx,inty)

{this,x=x;this,y=y;}

publicintX{get{returnx;}}

publicintY{get{returny:}}

)

1.2ORACLE命名规则

在命名表时,使用全大写名称:连接的单词间用、”隔开。例如,MATERIALBALANCE

用单数形式表示名称。例如,使用EMPLOYEE,而不是EMPLOYEES。

在命名表的列时,普通不要重复表的名称:例如,在名为EMPLOYEE的表中避免使用名为EMPLCYEE_BIRTHDAY的字

段,但为ID和NAME的字段可使用表名为前缀。

不要在列的名称中包含数据类型。如果后来有必要更改数据类型,这将减少工作量。

将每一个主要的SQI.子句放在不同的行上.这样更容易阅读和编根语句,例如,

SELECTfirst_name,last_n<unc

FROMcustomers

WHEREstate='

2注释

软件文档以两种形式存在:外部的和内部的0

22

外部文档(如规范、匡助文件和设计文档)在源代码的外部维护。内部文档由开辟人员在开辟时在源代码中编写的注释

组成。

不考虑外部文档的可用性,山于硬拷贝文档可能会放错地方,源代码清单应该能够独立存在。外部文档应该由规范、设

计文档、更改请求、错误历史记录和使用的编码标准组成。

内部软件文档的•个难题是确保注释的维护与更新与源代码同时进行。尽管正确注释源代码在运行时没有任何用途,但

这对F必须维护特殊复杂或者麻烦的软件片段的开辟人员来说却是无价的。

以下几点是推荐的注释方法:

如果用C#进行开辟,请使用XML文档功能。有关更多信息,请参见:XMI.文档。

修改代码时,总是使代码周围的注释保持最新。

在每一个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有匡助。注释样本应该是解释它为什

么存在和可以做什么的简短介绍。

避免在代码行的末尾添加注释;行尾注释使代码更难阅读。无非在批注变量声明时,行尾注释是合适的;在这种情

况下,将所有行尾注释在公共制表位处对齐。

避免杂乱的注释,如一整行星号。而是应该使用空白将注释同代码分开。

避免在块注释的周围加之印刷框。这样看起来可能很漂亮,但是难于维护。

在部署之前,移除所有暂时或者无关的注释,以避免在日后的维护工作中产生混乱。

如果需要用注释来解释竟杂的代码节,请检式此代码以确定是否应该重写它。尽一切可能不注释难以理解的代码,

而应该重写它。尽管普通不应该为『使代码更简单以便于人使用而牺牲性能,但必须保持性能和可维护性之间的

平衡。

在编写注释时使用完整的句注释应该阐明代码,而不应该增加多义性。

在编写代码时就注释,因为以后很可能没有时间这样做。此外,如果有机会复查已编写的代码,在今天看来很明显

的东西六周以后兴许就不明显了。

注释代码中不十分明显的任何内容。

为了防止问题反复浮现,对错误修复和解决方法代码总是使用注释,特别是在团队环境中。

对由循环和逻辑分支组成的代码使用注释。这些是匡助源代码读者的主要方面。

在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。

用空白将注释同注释分例符分开。在没有颜色提示的情况下查看注释时,这样做会使注释很明显且容易被找到。

2.1XML文档

在VisualC#中,可以将使用XML编写的代码文档化。C#是VisualStudio.NET中惟一具有此项功能的编程语言。

请在代码构造(如类型和类型成员)上处理标记。

注意不在命名空间上处理标记。

编译器将处理任何为有效XML的标记。下列标记提供了用户文档中常用的功能:

<c><para><see>l

<codc><param>l<seealso>l

<cxamplc><paramrcf>l<sununary>

<cxccption>l<pcrmission>l<value>

<include>l〈remarks)

<list><relurns>

22

2.1.1描述标记〈summary)

:

<summary>description</summary>

其中:

description

对象的摘要。

备注

〈summary》标记应当用于描述类型或者类型成员。使用〈remarks》添加针对某个类型说明的补充信息。

有关<summary>标记的文本是关于智能感知中类型信息的惟•来源,并且也显示在对象浏览器和代码注释

Web报表中。

示例

//xml_summary_tag.cs

//compilewith:/doc:xmlsummarytag.xml

IIItextforclassMyClass

publicclassMyClass

(

///<summary>MyMcthodisamethodintheMyClassclass.

///<para>Here,showyoucouldmakeasecondparagraphinadescription.<see

cref=",System.Console.WrileLineA'/>forinformationaboutoutputstatements.</para>

///<seealsocref=*MyClass.Main*/>

///</summary>

publicstaticvoidMyMcthod(intInti)

(

}

///textforMain

publicstaticvoidMain()

(

)

)

2.1.2详述标记<remarks>

语法

<remarks>description</remarks>

其中

description

成员的说明。

备注

22

<remarks>标记用于添加有关某个类型的信息,从而补充由〈summary》所指定的信息。此信息将显示在对象

浏览器和代码注释Web报表中。

示例

//xmlremarkstag.cs

//compilewith:/doc:xml_remarks_tag.xml

///〈summary〉

///Youmayhavesomeprimaryinformationaboutthisclass.

///</summary>

///<remarks>

///YoumayhavesomeadditionalinformationabDutthisclass.

Ill</remarks>

publicclassMyClass

(

///textforMain

publicstaticvoidMain()

(

)

}

2.1.3参数说明<param>

语法

<paramname='name>>description</param>

其中

name

方法参数名。将此名称用单引号括起来(’’)。

description

参数说明。

备注

<param>标记应当用于方法声明的注释中,以描述方法的一个参数。

有关<param>标记的文本将显示在智能感知、对象浏览器和代码注释Web报表中。

示例

//xml_param_lag.es

//compilewith:/doc:xml_param_tag.xml

///textforclassMyClass

publicclassMyClass

(

III<paramnamc="Intl"〉Uscdtoindicatestatus.</param>

publicstaticvoidMyMethod(intInti)

(

)

IIItextforMain

publicstaticvoidMain()

22

•忖件竹竹七纱椁快竹士---------------------------------------------------------------------------

(

)

)

2.1.4返回说明<returns>

语法

<returns>description</returns>

其中

description

返回值的说明。

备注

<returns>标记应当月于方法声明的注释,以描述返回值。

示例

//xml_returns_tag.cs

//compi1ewith:/df^c:xml_returns_tag.xml

///textforclassMyClass

publicclassMyClass

(

///<returns>Returnszero.</returns>

publicstaticintGetZeroO

(

return0:

)

///textforMain

publicstaticvcidMain()

(

}

)

2.1.5举例标记<example>

语法

<example>description</example>

其中

description

代码示例的说明。

备注

使用〈example)标记可以指定使用方法或者其他库成员的示例。普通情况下,这将涉及到<code>标记的使用。

示例

//xml_example_tag.cs

//compilewith:/doc:xml_ctag.xml

22

///textforclassMyClass

publicclassMyClass

(

III<summary>

///TheGetZeromethod.

Ill</summary>

///<example>ThissampleshowshowtocalltheGetZeromethod.

///<code>

///classMyClass

///{

///publicstaticintMainO

///{

///returnGetZero():

///)

///}

III</code>

///</cxamplc>

publicstaticintGetZero()

(

return0:

)

///textforMain

publicstaticvoidMain()

{

)

)

2.1.6异常说明<exception〉

语法

〈exceptioncref=/,niembcr*>dcscription</exception>

其中

cref=*member*

对可从当前编译环境中获取的异常的引用。编译器检查到给定异常存在后,将member转换为输出XML中的

规范化元素名。必须将member括在双引号("")中。

description

说明。

备注

〈exception〉标记使您可以指定哪些异常可被引起。该标记应用于方法定义。

使用/doc进行编译可以将文档注释处理到文件中。

示例

//xml_exception_tag.cs

//compilewith:/doc:xmlexceptiontag.xml

22

usingSystem:

///commentforclass

publicclassEClass:Exception

(

//classdefinition

)

///<exceptioncref=/,System.Exception*>Thrownwhen....</exception>

classTestClass

(

publicstaticvoidMain()

(

try

{

)

caich(EClass)

{

)

)

)

2.1.7属性说明〈value》

语法

<va1ue>property-description</va1ue>

其中

property-description

属性的说明。

备注

<value>标记使您得以描述属性。请注意,当在VisualStudio.NET开辟环境中通过代码向导添加属性时,

它将会为新属性添加<sununary>标记。然后,应该手动添加〈value)标记以描述该属性所表示的值。

示例

//xml_value_tag.es

//compilewith:/doc:xml_value_tag.xml

usingSystem:

IIItextforclassEmployee

publicclassEmployee

(

privatesiringname;

III<valuc>Namcaccessesthevalueofthenamedatamcmber</valuc>

publicstringName

get

22

快件豹竹飞抨台忖总个

returnname;

)

set

(

name=value;

)

}

)

IIItextforclassMainClass

publicclassMainClass

(

///textforMain

publicstaticvoidMainO

(

)

)

WJ:

〃/〈summary〉

〃/列举某•数据库的工位点。

〃/第一次调用该函数时Tag.nTagID=0,后续的调用需要传入上次返回的nTagID,Tag.sTagName为返回的设备名

〃/在调用本函数之前,需要调用GelTagsByDevice或者GelTagsByNameMask函数,先取得点的集合。

///</summary>

///〈puraiunume-"hRecurdsel”>传入参数,数据库类型标志

///如果要列举Agilor的点,hRecordsel的位为0到RAND_MAX之间的值

///如果要列举TnfoPlus的点,hRecordsel的值为C」P_RECORDSET_HANDLE

///如果要列举PI的点,hRccordsct的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论