软件代码编写规范.doc

上传人:jian****018 文档编号:9681992 上传时间:2020-04-07 格式:DOC 页数:23 大小:145.50KB
返回 下载 相关 举报
软件代码编写规范.doc_第1页
第1页 / 共23页
软件代码编写规范.doc_第2页
第2页 / 共23页
软件代码编写规范.doc_第3页
第3页 / 共23页
点击查看更多>>
资源描述
软件代码编写规范草稿2005.21 命名规则1.1.Net命名规则一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将消除许多最常见的用户问题。本主题提供 .NET Framework 类型的命名指南。对于每个类型,还应该注意关于大写样式、区分大小写和措词的一些通用规则。1.1.1大写样式 描述用于在类库中命名标识符的 Pascal 大小写、Camel 大小写和全部大写样式。 使用下面的三种大写标识符约定。l Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColorl Camel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColorl 大写标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:System.IOSystem.Web.UI可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。一般情况下,在使用它们的程序集之外这些字符应当是不可见的。下表汇总了大写规则,并提供了不同类型的标识符的示例。标识符大小写示例类PascalAppDomain枚举类型PascalErrorLevel枚举值PascalFatalError事件PascalValueChange异常类PascalWebException 注意总是以 Exception 后缀结尾。只读的静态字段PascalRedValue接口PascalIDisposable 注意总是以 I 前缀开始。方法PascalToString命名空间PascalSystem.Drawing参数CameltypeName属性PascalBackColor受保护的实例字段CamelredValue 注意很少使用。属性优于使用受保护的实例字段。公共实例字段PascalRedValue 注意很少使用。属性优于使用公共实例字段。1.1.2区分大小写为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则: 不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或类中必须避免这种情况。 不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。 namespace ee.cummings;namespace Ee.Cummings; 不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的。 void MyFunction(string a, string A) 不要创建具有仅是大小写有区别的类型名称的命名空间。在下面的示例中,Point p 和 POINT p 是不适当的类型名称,原因是它们仅在大小写方面有区别。 System.Windows.Forms.Point pSystem.Windows.Forms.POINT p 不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,int Color 和 int COLOR 是不适当的属性名称,原因是它们仅在大小写方面有区别。 int Color get, setint COLOR get, set 不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,calculate 和 Calculate 是不适当的方法名称,原因是它们仅在大小写方面有区别。 void calculate()void Calculate()1.1.3缩写为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则: 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。 不要使用计算机领域中未被普遍接受的缩写。 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为 User Interface 的缩写,用 OLAP 作为 On-line Analytical Processing 的缩写。 在使用缩写时,对于超过两个字符长度的缩写,请使用 Pascal 大小写或 Camel 大小写。例如,使用 HtmlButton 或 htmlButton。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。 不要在标识符或参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用 Camel 大小写,虽然这和单词的标准缩写相冲突。 1.1.4措词避免使用与常用的 .NET Framework 命名空间重复的类名称。例如,不要将以下任何名称用作类名称:System、Collections、Forms 或 UI。有关 .NET Framework 命名空间的列表,请参见类库。另外,避免使用和以下关键字冲突的标识符。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCByteCCharCDateCDecCDblCharCIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefault1.1.5避免类型名称混淆语言 不同的编程语言使用不同的术语标识基本托管类型。类库设计人员必须避免使用语言特定的术语。请遵循本节中描述的规则以避免类型名称混淆。使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那么在这种罕见的情况下请使用一般性名称。例如,支持将各种数据类型写入到流中的类可以有以下方法。VisualBasicSub Write(value As Double);Sub Write(value As Single);Sub Write(value As Long);Sub Write(value As Integer);Sub Write(value As Short);C#void Write(double value);void Write(float value);void Write(long value);void Write(int value);void Write(short value);不要创建语言特定的方法名称,如下面的示例所示。VisualBasicSub Write(doubleValue As Double);Sub Write(singleValue As Single);Sub Write(longValue As Long);Sub Write(integerValue As Integer);Sub Write(shortValue As Short);C#void Write(double doubleValue);void Write(float floatValue);void Write(long longValue);void Write(int intValue);void Write(short shortValue);如果有必要为每个基本数据类型创建唯一命名的方法,那么在这种极为罕见的情况下请使用通用类型名称。下表列出基本数据类型名称和它们的通用替换。C# 类型名称Visual Basic 类型名称JScript 类型名称Visual C+ 类型名称Ilasm.exe 表示形式通用类型名称sbyteSBytesBytecharint8SBytebyteBytebyteunsigned charunsigned int8ByteshortShortshortshortint16Int16ushortUInt16ushortunsigned shortunsigned int16UInt16intIntegerintintint32Int32uintUInt32uintunsigned intunsigned int32UInt32longLonglong_int64int64Int64ulongUInt64ulongunsigned _int64unsigned int64UInt64floatSinglefloatfloatfloat32SingledoubleDoubledoubledoublefloat64DoubleboolBooleanbooleanboolboolBooleancharCharcharwchar_tcharCharstringStringstringStringstringStringobjectObjectobjectObjectobjectObject例如,支持将从流读取各种数据类型的类可以有以下方法。VisualBasicReadDouble()As DoubleReadSingle()As SingleReadInt64()As LongReadInt32()As IntegerReadInt16()As ShortC#double ReadDouble();float ReadSingle();long ReadInt64();int ReadInt32();short ReadInt16();上面的示例优先于下面的语言特定的替代方法。VisualBasicReadDouble()As DoubleReadSingle()As SingleReadLong()As LongReadInteger()As IntegerReadShort()As ShortC#double ReadDouble();float ReadFloat();long ReadLong();int ReadInt();short ReadShort();1.1.6命名空间命名指南命名命名空间时的一般性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示。CompanyName.TechnologyName.Feature.Design例如:Microsoft.MediaMicrosoft.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.Web.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 命名空间。推荐使用的命名空间ISCAS.IEL.MES.ChangLian.MaterBalanceIEL.MES.ChangLian.MaterialBalance1.1.7类命名指南以下规则概述命名类的指南: 使用名词或名词短语命名类。 使用 Pascal 大小写。 少用缩写。 不要使用类型前缀,如在类名称上对类使用 C 前缀。例如,使用类名称 FileStream,而不是 CFileStream。 不要使用下划线字符 (_)。 有时候需要提供以字母 I 开始的类名称,虽然该类不是接口。只要 I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的。例如,类名称 IdentityStore 就是适当的。 在适当的地方,使用复合单词命名派生的类。派生类名称的第二个部分应当是基类的名称。例如,ApplicationException 对于从名为 Exception 的类派生的类是适当的名称,原因是 ApplicationException 是一种 Exception。请在应用该规则时进行合理的判断。例如,Button 对于从 Control 派生的类是适当的名称。尽管按钮是一种控件,但是将 Control 作为类名称的一部分将使名称不必要地加长。 下面是正确命名的类的示例。VisualBasicPublic Class FileStreamPublic Class ButtonPublic Class StringC#public class FileStreampublic class Buttonpublic class String1.1.8接口命名指南以下规则概述接口的命名指南: 用名词或名词短语,或者描述行为的形容词命名接口。例如,接口名称 IComponent 使用描述性名词。接口名称 ICustomAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。 使用 Pascal 大小写。 少用缩写。 给接口名称加上字母 I 前缀,以指示该类型为接口。 在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母 I 前缀。 不要使用下划线字符 (_)。 以下是正确命名的接口的示例。Visual BasicPublic Interface IServiceProviderPublic Interface IFormatableC#public interface IServiceProviderpublic interface IFormatable以下代码示例阐释如何定义 IComponent 接口及其标准实现 Component 类。Visual BasicPublic Interface IComponent Implementation code goes here.End InterfacePublic Class Component Implements IComponent Implementation code goes here.End ClassC#public interface IComponent / Implementation code goes here.public class Component: IComponent / Implementation code goes here.1.1.9属性命名指南应该总是将后缀 Attribute 添加到自定义属性类。以下是正确命名的属性类的示例。VisualBasicPublic Class ObsoleteAttributeC#public class ObsoleteAttribute1.1.10枚举类型命名指南枚举 (Enum) 值类型从 Enum 类继承。以下规则概述枚举的命名指南: 对于 Enum 类型和值名称使用 Pascal 大小写。 少用缩写。 不要在 Enum 类型名称上使用 Enum 后缀。 对大多数 Enum 类型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。 总是将 FlagsAttribute 添加到位域 Enum 类型。1.1.11静态字段命名指南以下规则概述静态字段的命名指南: 使用名词、名词短语或者名词的缩写命名静态字段。 使用 Pascal 大小写。 不要在静态字段名称中使用匈牙利语表示法的前缀。 建议尽可能使用静态属性而不是公共静态字段。 1.1.12参数命名指南必须仔细遵守这些参数的命名指南,这非常重要,因为提供上下文相关帮助和类浏览功能的可视化设计工具会在设计器中对用户显示方法参数名称。以下规则概述参数的命名指南: 对参数名称使用 Camel 大小写。 使用描述性参数名称。参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。例如,提供上下文相关帮助的可视化设计工具会按开发人员键入的实际内容显示方法参数。在这种情况下,方法参数名称的表述必须清楚明白,开发人员才能提供正确的参数。 使用描述参数的含义的名称,而不要使用描述参数的类型的名称。开发工具将提供有关参数的类型的有意义的信息。因此,通过描述意义,可以更好地使用参数的名称。少用基于类型的参数名称,仅在适合使用它们的地方使用它们。 不要使用保留的参数。保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。 不要给参数名称加匈牙利语类型表示法的前缀。 以下是正确命名的参数的示例。VisualBasicGetType(typeName As String)As TypeFormat(format As String, args() As object)As StringC#Type GetType(string typeName)string Format(string format, object args)1.1.13方法命名指南以下规则概述方法的命名指南: 使用动词或动词短语命名方法。 使用 Pascal 大小写。 以下是正确命名的方法的实例。RemoveAll()GetCharArray()Invoke()1.1.14属性命名指南以下规则概述属性的命名指南: 使用名词或名词短语命名属性。 使用 Pascal 大小写。 不要使用匈牙利语表示法。 考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为 Color 的属性,则属性的类型同样应该是 Color。请参见本主题内下文中的示例。 以下代码示例阐释正确的属性命名。VisualBasicPublic Class SampleClass Public Property BackColor As Color Code for Get and Set accessors goes here. End PropertyEnd ClassC#public class SampleClass public Color BackColor / Code for Get and Set accessors goes here. 以下代码示例阐释提供其名称与类型相同的属性。VisualBasicPublic Enum Color Insert code for Enum here. End EnumPublic Class Control Public Property Color As Color Get Insert code here. End Get Set Insert code here. End Set End PropertyEnd ClassC#public enum Color / Insert code for Enum here.public class Control public Color Color get / Insert code here. set / Insert code here. 以下代码示例不正确,原因是 Color 属性是 Integer 类型的。VisualBasicPublic Enum Color Insert code for Enum here. End EnumPublic Class Control Public Property Color As Integer Get Insert code here. End Get Set Insert code here. End Set End PropertyEnd ClassC#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 的实例成员)。1.1.15事件命名指南以下规则概述事件的命名指南: 使用 Pascal 大小写。 不要使用匈牙利语表示法。 对事件处理程序名称使用 EventHandler 后缀。 指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。sender 参数始终是 object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的事件类。 用 EventArgs 后缀命名事件参数类。 考虑用动词命名事件。例如,命名正确的事件名称包括 Clicked、Painting 和 DroppedDown。 使用动名词(动词的“ing”形式)创建表示事件前的概念的事件名称,用过去式表示事件后。例如,可以取消的 Close 事件应当具有 Closing 事件和 Closed 事件。不要使用 BeforeXxx/AfterXxx 命名模式。 不要在类型的事件声明上使用前缀或者后缀。例如,使用 Close,而不要使用 OnClose。 通常情况下,对于可以在派生类中重写的事件,应在类型上提供一个受保护的方法(称为 OnXxx)。此方法只应具有事件参数 e,因为发送方总是类型的实例。 以下示例阐释具有适当名称和参数的事件处理程序。VisualBasicPublic Delegate Sub MouseEventHandler(sender As Object, e As MouseEventArgs)C#public delegate void MouseEventHandler(object sender, MouseEventArgs e);以下示例阐释正确命名的事件参数类。VisualBasicPublic 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 PropertyEnd ClassC#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; 1.2 ORACLE命名规则l 在命名表时,使用全大写名称;连接的单词间用“_”隔开。例如,MATERIAL_BALANCEl 用单数形式表示名称。例如,使用 EMPLOYEE,而不是 EMPLOYEES。 l 在命名表的列时,一般不要重复表的名称;例如,在名为 EMPLOYEE的表中避免使用名为 EMPLOYEE_BIRTHDAY的字段,但为ID和NAME的字段可使用表名为前缀。 l 不要在列的名称中包含数据类型。如果后来有必要更改数据类型,这将减少工作量。 将每个主要的 SQL 子句放在不同的行上,这样更容易阅读和编辑语句,例如: SELECT first_name, last_nameFROM customersWHERE state = WA2 注释软件文档以两种形式存在:外部的和内部的。外部文档(如规范、帮助文件和设计文档)在源代码的外部维护。内部文档由开发人员在开发时在源代码中编写的注释组成。不考虑外部文档的可用性,由于硬拷贝文档可能会放错地方,源代码清单应该能够独立存在。外部文档应该由规范、设计文档、更改请求、错误历史记录和使用的编码标准组成。内部软件文档的一个难题是确保注释的维护与更新与源代码同时进行。尽管正确注释源代码在运行时没有任何用途,但这对于必须维护特别复杂或麻烦的软件片段的开发人员来说却是无价的。以下几点是推荐的注释方法: l 如果用 C# 进行开发,请使用 XML 文档功能。有关更多信息,请参见:XML 文档。 l 修改代码时,总是使代码周围的注释保持最新。 l 在每个例程的开始,提供标准的注释样本以指示例程的用途、假设和限制很有帮助。注释样本应该是解释它为什么存在和可以做什么的简短介绍。 l 避免在代码行的末尾添加注释;行尾注释使代码更难阅读。不过在批注变量声明时,行尾注释是合适的;在这种情况下,将所有行尾注释在公共制表位处对齐。 l 避免杂乱的注释,如一整行星号。而是应该使用空白将注释同代码分开。 l 避免在块注释的周围加上印刷框。这样看起来可能很漂亮,但是难于维护。 l 在部署之前,移除所有临时或无关的注释,以避免在日后的维护工作中产生混乱。 l 如果需要用注释来解释复杂的代码节,请检查此代码以确定是否应该重写它。尽一切可能不注释难以理解的代码,而应该重写它。尽管一般不应该为了使代码更简单以便于人们使用而牺牲性能,但必须保持性能和可维护性之间的平衡。 l 在编写注释时使用完整的句子。注释应该阐明代码,而不应该增加多义性。 l 在编写代码时就注释,因为以后很可能没有时间这样做。另外,如果有机会复查已编写的代码,在今天看来很明显的东西六周以后或许就不明显了。 l 注释代码中不十分明显的任何内容。 l 为了防止问题反复出现,对错误修复和解决方法代码总是使用注释,尤其是在团队环境中。 l 对由循环和逻辑分支组成的代码使用注释。这些是帮助源代码读者的主要方面。 l 在整个应用程序中,使用具有一致的标点和结构的统一样式来构造注释。 l 用空白将注释同注释分隔符分开。在没有颜色提示的情况下查看注释时,这样做会使注释很明显且容易被找到。2.1 XML文档在 Visual C# 中,可以将使用 XML 编写的代码文档化。C# 是 Visual Studio.NET 中唯一具有此项功能的编程语言。请在代码构造(如类型和类型成员)上处理标记。注意不在命名空间上处理标记。编译器将处理任何为有效 XML 的标记。下列标记提供了用户文档中常用的功能:11111112.1.1 描述标记语法:description其中:description 对象的摘要。 备注 标记应当用于描述类型或类型成员。使用 添加针对某个类型说明的补充信息。有关 标记的文本是关于智能感知中类型信息的唯一来源,并且也显示在对象浏览器和代码注释 Web 报表中。示例/ xml_summary_tag.cs/ compile with: /doc:xml_summary_tag.xml/ text for class MyClasspublic class MyClass / MyMethod is a method in the MyClass class. / Heres how you could make a second paragraph in a description. for information about output statements. / / public static void MyMethod(int Int1) / text for Main public static void Main () 2.1.2 详述标记 语法description其中description 成员的说明。 备注 标记用于添加有关某个类型的信息,从而补充由 所指定的信息。此信息将显示在对象浏览器和代码注释 Web 报表中。示例/ xml_remarks_tag.cs/ compile with: /doc:xml_remarks_tag.xml / / You may have some primary information about this class./ / / You may have some additional information about this class./ public class MyClass / text for Main public static void Main () 2.1.3 参数说明 语法description其中 name 方法参数名。将此名称用单引号括起来 ( )。 description 参数说明。 备注 标记应当用于方法声明的注释中,以描述方法的一个参数。有关 标记的文本将显示在智能感知、对象浏览器和代码注释 Web 报表中。示例/ xml_param_tag.cs/ compile with: /doc:xml_param_tag.xml / text for class MyClasspublic class MyClass / Used to indicate status. public static void MyMethod(int Int1) / text for Main public static void Main () 2.1.4 返回说明 语法description其中description 返回值的说明。 备注 标记应当用于方法声明的注释,以描述返回值。示例/ xml_returns_tag.cs/ compile with: /doc:xml_returns_tag.xml / text for class MyClasspublic class MyClass / Returns zero. public static int GetZero() return 0; / text for Main public static void Main () 2.1.5 举例标记 语法description其中description 代码示例的说明。 备注使用 标记可以指定使用方法或其他库成员的示例。一般情况下,这将涉及到 标记的使用。示例/ xml_example_tag.cs/ compile with: /doc:xml_ctag.xml/ text for class MyClasspublic class MyClass / / The GetZero method. / / This sample shows how to call the GetZero method. / / class MyClass / / public static int Main() / / return GetZero(); / / / / public static int GetZero() return 0; / text for Main public static void Main () 2.1.6 异常说明 语法description其中cref = member 对可从当前编译环境中获取的异常的引用。编译器检查到给定异常存在后,将 member 转换为输出 XML 中的规范化元素名。必须将 member 括在双引号 ( ) 中。 description 说明。 备注 标记使您可以指定哪些异常可被引发。该标记应用于方法定义。使用 /doc 进行编译可以将文档注释处理到文件中。示例/ xml_exception_tag.cs/ compile with: /doc:xml_exception_tag.xmlusing System;/ comment for classpublic class EClass : Exception / class definition ./ Thrown when. .class TestClass public static void Main() try catch(EClass) 2.1.7 属性说明语法property-description其中property-description 属性的说明。 备注 标记使您得以描述属性。请注意,当在 Visual Studio .NET 开发环境中通过代码向导添加属性时,它将会为新属性添加 标记。然后,应该手动添加 标记以描述该属性所表示的值。示例/ xml_value_tag.cs/ compile with: /doc:xml_value_tag.xmlusing System;/ text for class Employeepublic class Employee private string name; / Name accesses the value of the name data member public string Name get return name; set name = value; / text for class MainClasspublic class MainClass / text for Main public static void Main() 举例:/列举某一数据库的工位点。/第一次调用该函数时Tag.nTagID=0,后续的调用需要传入上次返回的nTagID,Tag.sTagName为返回的设备名/在调用本函数之前,需要调用GetTagsByDevice 或者GetTagsByNameMask函数,先取得点的集合。/传入参数,数据库类型标志/如果要列举Agilor的点,hRecordset的值为0到RAND_MAX之间的值/如果要列举InfoPlus的点,hRecordset的值为C_IP_RECORDSET_HANDLE/如果要列举PI的点,hRecordset的值为C_PI_RECORDSET_HANDLE/传出参数,数据库工位点信息/ 大于等于=0表示成功,-1表示没有可枚举的点int EnumTagName(long hRecordset,Tag * tag)_TCHAR szTagNameC_FULL_TAGNAME_LEN;int nRes;。2.2其他设计文档中的注释1、函数头的注释 对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六个方面用如下格式注释: /*程序说明开始 = 功能: 从一个String 中删除另一个String。 参数: strByDelete,strToDelete (入口) strByDelete: 被删除的字符串(原来的字符串) (出口) strToDelete: 要从上个字符串中删除的字符串。 返回: 找到并删除返回1,否则返回0。(对返回值有错误编码的要/ 求列出错误编码)。 主要思路:本算法主要采用循环比较的方法来从strByDelete中找到 与strToDelete相匹配的字符串,对多匹配strByDelete 中有多个strToDelete子串)的情况没有处理。请参阅: 书名. 调用方法:. 日期:起始日期,如:2000/8/21.9:40-2000/8/23.21:45 = 函数名() 程序说明结束 */2、变量的注释: 对于变量的注释紧跟在变量的后面说明变量的作用。原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j等循环变量可以不注释。 例如: long lLineCount -线的根数。 3、文件的注释: 文件应该在文件开头加入以下注释: /* / 工程: 文件所在的项目名。 / 作者:*,修改者:* / 描述:说明文件的功能。 / 主要函数: / 版本: 说明文件的版本,完成日期。 / 修改: 说明对文件的修改内容、修改原因以及修改日期。 / 参考文献: . /*/ 4、其他注释: 在函数内我们不需要注释每一行语句。但必须在各功能模块的每一主要部分之前添加块注释,注释每一组语句,在循环、流程的各分支等,尽可能多加以注释。其中的循环、条件、选择等位置必须注释。对于前后顺序不能颠倒的情况,建议在注释中增加序号。 例如: . -1、.注释 for (.) if(.) -.注释 else -.注释 -.注释 switch(.) case: .- .注释 . case: .- .注释 . default: -.注释 . 在其他顺序执行的程序中,每隔3-5行语句,必须加一个注释,注明这一段语句所组成的小模块的作用。对于自己的一些比较独特的思想要求在注释中标明。3安全与调试开发后期,程序员还担负着代码的调试和漏斗检测任务,其中就包括如下内容所有页面要在800*600,1024*768两种分辨率下运行通过;所有页面要在IE5.0,5.5以及6.0下运行通过没有javascript错误;所有涉及删除的操作,在用户选定
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!