非常好的C#.NET_编程规范.docx
《非常好的C#.NET_编程规范.docx》由会员分享,可在线阅读,更多相关《非常好的C#.NET_编程规范.docx(16页珍藏版)》请在课桌文档上搜索。
1、c#.NET编程规范目录1前言21.1 编写目的21.2 范围22规范内容221代码格式222命名指南31.1 .1大写样式31.2 区分大小写41.3 缩写51.4 措词51.1 .5避免类型名称混淆6226命名空间命名指南81.2 .7类命名指南91.3 .8类成员变量命名指南922.9 接口命名指南1022.10 属性命名指南1022.11 1枚举类型命名指南102212静态字段命名指南1122.13 参数命名指南1122.14 方法命名指南1222.15 属性命名指南1222.16 事件命名指南132.3注释(COmment)规范141.1 .1模块(类)注释规范141.2 类属性注释
2、规范151.3 3方法注释规范151.4 代码间注释规范153成功的模式163.1 有效地使用这些标准163.2 其它导向成功代码的因素161前百1.1 编写目的为了保证企业编写出的程序都符合相同的规范,保证一致性、统一性而建立的程序编码规范。1.2 范围合用于企业所有基于.NET平台的软件开辟工作。2.规范内容2.1 代码格式令所有的缩进为4个空格,使用VS.NET的默认设置。令在代码中垂直对齐左括号和右括号。if(x=0)(ReSponSe.Write(用户编号必须输入!”);)不允许以下情况:if(x=0)ReSPOnSeNriteC用户编号必须输入!);)或者:if(x=0)Respo
3、nse.Write(用户编号必须输入!*);令为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或者注释在1024*800的显示频率下不得超过一显示屏令当一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清晰地表示没有后面的行是不完整的。令每一行上放置的语句避免超过一条。令在大多数运算符之前和之后使用空格,这样做时不会改变代码的意图却可以使代码容易阅读。例:intj=i+k;而不应写为intj=i+k;令将大的复杂代码节分为较小的、易于理解的模块。2.2 命名指南2.2.1 大写样式使用下面的三种大写标识符约定。Pascal大小写将标识符的首字母和后面连接的每一个单词的首字母都大
4、写。可以对三字符或者更多字符的标识符使用Pascal大小写。例如:BackCoIorCamel大小写标识符的首字母小写,而每一个后面连接的单词的首字母都大写。例如:backColor大写标识符中的所有字母都大写。仅对于由两个或者更少字母组成的标识符使用该约定。例如:System.IOSystem.Web.UI可能还必须大写标识符以维持与现有非托管符号方案的兼容性,在该方案中所有大写字母时常用于枚举和常数值。普通情况下,在使用它们的程序集之外这些字符应当是不可见的。下表汇总了大写规则,并提供了不同类型的标识符的示例。标识符大小写示例类PascalAppDomain枚举类型PascalErrorL
5、evel枚举值PascalFatalError事件PascalValueChange异常类PascalWebException注意总是以EXCePtiOn后缀结尾。只读的静态字段PascalRedValue接口Pascal!Disposable注意总是以I前缀开始。方法PascalToString命名空间PascalSystem.Drawing参数CameltypeName属性PascalBackColor受保护的实例字CameIredValue段注意很少使用。属性优于使用受保护的实例字段。公共实例字段PascalRedValue注意很少使用。属性优于使用公共实例字段。2.2.2 区分大小写为
6、了避免混淆和保证跨语言交互操作,请遵循有关区分大小写的使用的下列规则:令不要使用要求区分大小写的名称。对于区分大小写和不区分大小写的语言,组件都必须彻底可以使用。不区分大小写的语言无法区分同一上下文中仅大小写不同的两个名称。因此,在创建的组件或者类中必须避免这种情况。令不要创建仅是名称大小写有区别的两个命名空间。例如,不区分大小写的语言无法区分以下两个命名空间声明。namespaee.cummings;namespaEe.Cummings;令不要创建具有仅是大小写有区别的参数名称的函数。下面的示例是不正确的。voidMyFunction(stringa,stringA)令不要创建具有仅是大小写
7、有区别的类型名称的命名空间。在下面的示例中,Pointp和POINTP是不适当的类型名称,原因是它们仅是大小写有区别。System.Windows.Forms.PointpSystem.Windows.Forms.POINTp令不要创建具有仅是大小写有区别的属性名称的类型。在下面的示例中,intColor和intCOLOR是不适当的属性名称,原因是它们仅是大小写有区别。intColorget,setintCOLORget,set令不要创建具有仅是大小写有区别的方法名称的类型。在下面的示例中,CalCUlate和Calculate是不适当的方法名称,原因是它们仅是大小写有区别。voidcalcu
8、late()voidCalculate()2.2.3 缩写为了避免混淆和保证跨语言交互操作,请遵循有关区缩写的使用的下列规则:令不要将缩写或者缩略形式用作标识符名称的组成部份。例如,使用GetWindow,而不要使用GetWinc令不要使用计算机领域中未被普遍接受的缩写。令在适当的时候,使用众所周知的缩写替换冗长的词组名称。例如,用Ul作为UserInterface的缩写,用OLAP作为OnTineAnalyticalProcessing的缩写。令在使用缩写时,对于超过两个字符长度的缩写请使用Pascal大小写或者Camel大小写。例如,使用HtmlButton或者HTMLButtono但是,
9、应当大写仅有两个字符的缩写,如,System.10,而不是System.Ioo令不要在标识符或者参数名称中使用缩写。如果必须使用缩写,对于由多于两个字符所组成的缩写请使用Camel大小写,虽然这和单词的标准缩写相冲突。2.2.4 措词避免使用与常用的.NET框架命名空间重复的类名称。例如,不要将以下任何名称用作类名称:SystemCollectionsForms或者UIo有关.NET框架命名空间的列表,请参阅类库。此外,避免使用和以下关键字冲突的标识符。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValC
10、allCaseCatchCBoolCByteCCharCDateCDecCDblCharCIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEndEnumEraseErrorEventExitExternalSourceFalseFinalizeFinallyFloatForFriendFunctionGetGetTypeGotoHandlesIfImplementsImportsInInheritsIntegerInterfaceIsLetLibL
11、ikeLongLoopMeModModuleMustInheritMustOverrideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridab1eObjectOnOptionOptionalOrOverloadsOverridableOverridesParalnArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectSetShadowsSharedShortSi
12、ngleStaticStepStopStringStructureSubSyncLockThenThrowToTrueTryTypeOfUnicodeUntilvolatileWhenWhileWithWithEventsWriteOnlyXorevalextendsinstanceofpackagevar2.2.5 避免类型名称混淆不同的编程语言使用不同的术语标识基本托管类型。类库设计人员必须避免使用语言特定的术语。请遵循本节中描述的规则以避免类型名称混淆。使用描述类型的含义的名称,而不是描述类型的名称。如果参数除了其类型之外没有任何语义含义,那末在这种罕见的情况下请使用普通性名称。例如,支
13、持将各种数据类型写入到流中的类可以有以下方法。voidWrite(doublevalue);voidWrite(floatvalue);voidWrite(longvalue);voidWrite(intvalue);voidWrite(shortvalue);不要创建语言特定的方法名称,如下面的示例所示。voidWrite(doubledoubleValue);voidWrite(floatfIoatVaIue);voidWriteflongIongVaIue);voidWritefintintVale);voidWrite(shortShortVaIue);如果有必要为每一个基本数据类型创
14、建惟一命名的方法,那末在这种极其罕见的情况下请使用通用类型名称。下表列出基本数据类型名称和它们的通用替换。C#类型名VisualBasicJScript类型VisualC+类Ilasm.exe表示形通用类型名称类型名称名称型名称式称sbyteSBytesBytecharint8SBytebyteBytebyteunsignedcharunsignedint8ByteshortShortshortshortintl6Intl6ushortUIntl6ushortunsignedunsignedintl6UIntl6shortintIntegerintintint32Int32uintUInt32
15、uintunsignedintunsignedint32UInt32longLonglong_int64int64Int64ulongUInt64ulongunsignedunsignedint64UInt64_int64floatSinglefloatfloatfloat32SingledoubleDoubledoubledoublefloat64DoubleboolBooleanbooleanboolboolBooleancharCharcharwchar_tcharCharstringStringstringStringstringStringobjectObjectobjectObje
16、ctobjectObject例如,支持将从流读取各种数据类型的类可以有以下方法。doubleReadDoubIeO;floatReadSingIef);longReadlnt64();intReadlnt32();shortReadlntl6();前面的示例优于下面的语言特定的替换。doubleReadDoubIeO;floatReadFIoatf);longReadLong();intReadlnt();shortReadShortQ;2.2.6 命名空间命名指南命名命名空间时的普通性规则是使用公司名称,后跟技术名称和可选的功能与设计,如下所示。CompanyName.TechnologyN
17、ame.Feature.Design例如:Microsoft.MediaMicrosoft.Media.Design给命名空间名称加之公司名称或者其他知名商标的前缀可以避免两个已经发布的命名空间名称相同的可能性。例如,Microsoft.Office是由Microsoft提供的OfficeAutomationClasses的一个适当的前缀。在第二级分层名称上使用稳定的、公认的技术名称。将组织层次架构用作命名空间层次架构的基础。命名一个命名空间,该命名空间包含为具有.Design后缀的基命名空间提供设计时功能的类型。例如,System.Windows.Forms.Design命名空间包含用于设计
18、基于System.Windows.Forms的应用程序的设计器和相关的类。嵌套的命名空间应当在包含它的命名空间中的类型上有依赖项。例如,System.Web.UI.Design中的类依赖于System.Web.UI中的类。但是,System.Web.UI中的类不依赖于System.UI.Design中的类。应当对命名空间使用Pascal大小写,并用句点分隔逻辑组件,如Microsoft.Office.PowerPoint中所示。如果您的商标使用非传统的大小写,请遵循您的商标所定义的大小写,即使它与规定的Pascal大小写相背离。例如I,命名空间NeXT.WebObjects和ee.Cummin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 非常好 NET_ 编程 规范

链接地址:https://www.desk33.com/p-560946.html