ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:25.96KB ,
资源ID:4085632      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4085632.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C团队开发代码规范.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C团队开发代码规范.docx

1、C团队开发代码规范C#编程规范目录1前言 21.1 编写目的 21.2 范围 22. 规范内容 22.1 代码格式 22.2 命名指南 32.2.1 大写样式 32.2.2 区分大小写 42.2.3 缩写 52.2.4 措词 52.2.5 避免类型名称混淆 72.2.6 命名空间命名指南 82.2.7 类命名指南 92.2.8 类成员变量命名指南 102.2.9 接口命名指南 102.2.10 属性命名指南 102.2.11 枚举类型命名指南 112.2.12 静态字段命名指南 112.2.13 参数命名指南 112.2.14 方法命名指南 122.2.15 属性命名指南 122.2.16事件

2、命名指南 132.3 注释(Comment)规范 142.3.1 模块(类)注释规范 142.3.2 类属性注释规范 152.3.3 方法注释规范 152.3.4 代码间注释规范 153 成功的模式 163.1 有效地使用这些标准 163.2 其它导向成功代码的因素 171前言1.1 编写目的为了保证团队编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。1.2 范围适用于所有基于.NET平台的软件开发工作。2. 规范内容2.1 代码格式 所有的缩进为4个空格,使用VS.NET的默认设置。 在代码中垂直对齐左括号和右括号。if(x=0) Response.Write(用户编号

3、必须输入!); 不允许以下情况:if(x=0) Response.Write(用户编号必须输入!); 或者:if(x=0) Response.Write(用户编号必须输入!); 为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在1024*800的显示频率下不得超过一显示屏 当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。 每一行上放置的语句避免超过一条。 在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。例: int j = i + k; 而不应写为 int j=i+k; 将大的复杂代码节分为较小的、易

4、于理解的模块。2.2 命名指南2.2.1 大写样式使用下面的三种大写标识符约定。Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更多字符的标识符使用 Pascal 大小写。例如:BackColorCamel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:backColor大写标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:System.IOSystem.Web.UI可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母经常用于枚举和常数值。一般情况下,在使用它们的程序集之外这些字

5、符应当是不可见的。下表汇总了大写规则,并提供了不同类型的标识符的示例。标识符大小写示例类PascalAppDomain枚举类型PascalErrorLevel枚举值PascalFatalError事件PascalValueChange异常类PascalWebException 注意 总是以 Exception 后缀结尾。只读的静态字段PascalRedValue接口PascalIDisposable 注意 总是以 I 前缀开始。方法PascalToString命名空间PascalSystem.Drawing参数Camel typeName属性PascalBackColor受保护的实例字段Cam

6、el redValue 注意 很少使用。属性优于使用受保护的实例字段。公共实例字段PascalRedValue 注意 很少使用。属性优于使用公共实例字段。2.2.2 区分大小写为了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则: 不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须完全可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或类中必须避免这种情况。 不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。 namespace ee.cummings;names

7、pace 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 是不适当的属性名称,原因是它们仅是大小写有区别。

8、int Color get, setint COLOR get, set 不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,calculate 和 Calculate 是不适当的方法名称,原因是它们仅是大小写有区别。 void calculate()void Calculate()2.2.3 缩写为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则: 不要将缩写或缩略形式用作标识符名称的组成部分。例如,使用 GetWindow,而不要使用 GetWin。 不要使用计算机领域中未被普遍接受的缩写。 在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用 UI 作为

9、 User Interface 的缩写,用 OLAP 作为 On-line Analytical Processing 的缩写。 在使用缩写时,对于超过两个字符长度的缩写请使用 Pascal 大小写或 Camel 大小写。例如,使用 HtmlButton 或 HTMLButton。但是,应当大写仅有两个字符的缩写,如,System.IO,而不是 System.Io。 不要在标识符或参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用 Camel 大小写,虽然这和单词的标准缩写相冲突。 2.2.4 措词避免使用与常用的 .NET 框架命名空间重复的类名称。例如,不要将以下任

10、何名称用作类名称:System、Collections、Forms 或 UI。有关 .NET 框架命名空间的列表,请参阅类库。另外,避免使用和以下关键字冲突的标识符。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCByteCCharCDateCDecCDblCharCIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEnd

11、EnumEraseErrorEventExitExternalSourceFalseFinalizeFinally FloatForFriendFunctionGetGetTypeGotoHandlesIfImplementsImportsInInheritsIntegerInterfaceIsLetLibLikeLongLoopMeModModuleMustInheritMustOverrideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridableObjectOnOptionOptionalOrOverloads

12、OverridableOverridesParamArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectSetShadowsSharedShortSingleStaticStepStopStringStructureSubSyncLockThenThrowToTrueTryTypeOfUnicodeUntilvolatileWhenWhileWithWithEventsWriteOnlyXorevalextendsinstanceofpa

13、ckagevar2.2.5 避免类型名称混淆不同的编程语言使用不同的术语标识基本托管类型。类库设计人员必须避免使用语言特定的术语。请遵循本节中描述的规则以避免类型名称混淆。使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那么在这种罕见的情况下请使用一般性名称。例如,支持将各种数据类型写入到流中的类可以有以下方法。Visual BasicSub Write(value As Double);Sub Write(value As Single);Sub Write(value As Long);Sub Write(value As Integer);Sub

14、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);不要创建语言特定的方法名称,如下面的示例所示。Visual BasicSub Write(doubleValue As Double);Sub Write(singleValue As Single);Sub Write(longValue As Long);Sub Write(integerValue As In

15、teger);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+ 类型名称I

16、lasm.exe 表示形式通用类型名称sbyteSBytesBytecharint8SBytebyteBytebyteunsigned charunsigned int8ByteshortShortshortshortint16Int16ushortUInt16ushortunsigned shortunsigned int16UInt16intIntegerintintint32Int32uintUInt32uintunsigned intunsigned int32UInt32longLonglong_int64int64Int64ulongUInt64ulongunsigned _int

17、64unsigned int64UInt64floatSinglefloatfloatfloat32SingledoubleDoubledoubledoublefloat64DoubleboolBooleanbooleanboolboolBooleancharCharcharwchar_tcharCharstringStringstringStringstringStringobjectObjectobjectObjectobjectObject例如,支持将从流读取各种数据类型的类可以有以下方法。Visual Basic C#double ReadDouble();float ReadSing

18、le();long ReadInt64();int ReadInt32();short ReadInt16();前面的示例优于下面的语言特定的替换。Visual Basic C#double ReadDouble();float ReadFloat();long ReadLong();int ReadInt();short ReadShort();2.2.6 类成员变量命名指南 类成员变量加 m_ 前缀,如: int m_ContentLength。 2.2.7 接口命名指南以下规则概述接口的命名指南: 用名词或名词短语,或者描述行为的形容词命名接口。例如,接口名称 IComponent 使用

19、描述性名词。接口名称 ICustomAttributeProvider 使用名词短语。名称 IPersistable 使用形容词。 使用 Pascal 大小写。 少用缩写。 给接口名称加上字母 I 前缀,以指示该类型为接口。 在定义类/接口对(其中类是接口的标准实现)时使用相似的名称。两个名称的区别应该只是接口名称上有字母 I 前缀。 不要使用下划线字符 (_)。 以下是正确命名的接口的示例。Visual BasicPublic Interface IServiceProviderPublic Interface IFormatableC#public interface IServicePr

20、oviderpublic 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 public class Component:

21、IComponent / Implementation code goes here.2.2.10 属性命名指南应该总是将后缀 Attribute 添加到自定义属性类。以下是正确命名的属性类的示例。 Visual BasicPublic Class ObsoleteAttributeC#public class ObsoleteAttribute2.2.11 枚举类型命名指南枚举 (Enum) 值类型从 Enum 类继承。以下规则概述枚举的命名指南: 对于 Enum 类型和值名称使用 Pascal 大小写。 少用缩写。 不要在 Enum 类型名称上使用 Enum 后缀。 对大多数 Enum 类

22、型使用单数名称,但是对作为位域的 Enum 类型使用复数名称。 总是将 FlagsAttribute 添加到位域 Enum 类型。 2.2.12 静态字段命名指南以下规则概述静态字段的命名指南: 使用名词、名词短语或者名词的缩写命名静态字段。 使用 Pascal 大小写。 对静态字段名称使用匈牙利语表示法前缀。 建议尽可能使用静态属性而不是公共静态字段。 2.2.13 参数命名指南以下规则概述参数的命名指南: 使用描述性参数名称。参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情况下确定它的含义。 对参数名称使用 Camel 大小写。 使用描述参数的含义的名称,而不要使用描述

23、参数的类型的名称。开发工具将提供有关参数的类型的有意义的信息。因此,通过描述意义,可以更好地使用参数的名称。少用基于类型的参数名称,仅在适合使用它们的地方使用它们。 不要使用保留的参数。保留的参数是专用参数,如果需要,可以在未来的版本中公开它们。相反,如果在类库的未来版本中需要更多的数据,请为方法添加新的重载。 不要给参数名称加匈牙利语类型表示法的前缀。 以下是正确命名的参数的示例。Visual BasicGetType(typeName As String)As TypeFormat(format As String, object args)As StringC#Type GetType(

24、string typeName)string Format(string format, args() As object)2.2.14 方法命名指南以下规则概述方法的命名指南: 使用动词或动词短语命名方法。 使用 Pascal 大小写。 以下是正确命名的方法的实例。RemoveAll()GetCharArray()Invoke()2.2.15 属性命名指南以下规则概述属性的命名指南: 使用名词或名词短语命名属性。 使用 Pascal 大小写。 不要使用匈牙利语表示法。 考虑用与属性的基础类型相同的名称创建属性。例如,如果声明名为 Color 的属性,则属性的类型同样应该是 Color。请参阅

25、本主题中后面的示例。 以下代码示例阐释正确的属性命名。Visual BasicPublic 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. 以下代码示例阐释提供其名称与类型相同的属性。Visual BasicPublic Enu

26、m 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

27、 code here. 以下代码示例不正确,原因是 Color 属性是 Integer 类型的。Visual BasicPublic 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.publ

28、ic class Control public int Color get / Insert code here. set / Insert code here. 在不正确的示例中,不可能引用 Color 枚举的成员。Color.Xxx 将被解释为访问一个成员,该成员首先获取 Color 属性(在 Visual Basic 中为 Integer 类型,在 C# 中为 int 类型)的值,然后再访问该值的某个成员(该成员必须是 System.Int32 的实例成员)。2.2.16事件命名指南以下规则概述事件的命名指南: 对事件处理程序名称使用 EventHandler 后缀。 指定两个名为 sender 和 e 的参数。sender 参数表示引发事件的对象。sender 参数始终是 object 类型的,即使在可以使用更为特定的类型时也如此。与事件相关联的状态封装在名为 e 的事件类的实例中。对 e 参数类型使用适当而特定的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1