命名规范中文版.docx_第1页
命名规范中文版.docx_第2页
命名规范中文版.docx_第3页
命名规范中文版.docx_第4页
命名规范中文版.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

.NET命名规范中文版词语选择避免使用由经常使用的名称空间复制的类型名。类型名不能使用下列词语。SystemCollectionsFormsUI避免使用与常用关键词冲突的标识符。例如,避免使用下列词语。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBitAndBitNotBitOrBitXorBooleanByRefByteByValCallCaseCatchCBoolCByteCCharCDateCDecCDblCharCIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEndEnumEraseErrorEventExitExternalSourceFalseFinallyForFriendFunctionGetGetTypeGotoHandlesIfImplementsImportsInInheritsIntegerInterfaceIsLetLibLikeLongLoopMeModModuleMustInheritMustOverrideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridableObjectOnOptionOptionalOrOverloadsOverridableOverridesParamArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectSetShadowsSharedShortSingleStaticStepStopStringStructureSubSyncLockThenThrowToTrueTryTypeOfUnicodeUntilVariantWhenWhileWithWithEventsWriteOnlyXorevalextendsinstanceofpackagevar标识符(包括参数名)中不要使用缩写。如果必须使用缩写:任何超过两个字符以上的缩写都使用camel大写格式,即使这不是标准缩写。名称空间命名名称空间的一般规则如下:CompanyName.TechnologyName这样,我们看到的名称空间应该是这样的:Microsoft.OfficePowerSoft.PowerBuilder注意:这只是一个原则。第三方公司可以选择其它的名字。避免用公司名称或其它著名品牌的名称作为名称空间的前缀,这样会造成两个公布的名称空间有同一个名称的可能性。(例如,将微软提供的Office自动类命名为Microsoft.Office。)使用Pascal大写方式,用逗号分隔逻辑成分(例如,Microsoft.Office.PowerPoint)。如果你的品牌使用的是非传统大写方式,那么一定要遵循你的品牌所确定使用的大写方式,即使这种方式背离了通常的名称空间大写规则(例如,NeXT.WebObjects,和ee.cummings。)该用复数的时候要使用复数的名称空间名。例如,使用System.Collections而不是System.Collection。本规则的特例是品牌名称和缩写。例如:使用System.IO而不是System.IOs。名称空间和类不能使用同样的名字。例如,有一个类被命名为Debug后,就不要再使用Debug作为一个名称空间名。类和类成分类的命名原则用名词或名词短语命名类。使用Pascal大写。减少类名中缩写的使用量。不要使用任何类前缀(比如C)。不要使用带下划线的字符。下面是一些正确命名的类名的例子。public classFileStreampublic classButtonpublic classString接口命名原则使用名词或名词短语,或者描述行为的形容词来命名接口。例如,IComponent(描述性名词),ICustomAttributeProvider(名词短语),和IPersistable(形容词)。使用Pascal大写。减少接口名中缩写的使用量。不要使用带下划线的字符。在接口名前加前缀I,以表示这个类型是一个接口。不要在类名前加上前缀C。偶而情况下,需要在类名前加上I而并不表示它是一个接口。在这种情况下,只要I后面的字符是小写就可(例如,IdentityStore。)当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。两个名称的不同之处只是接口名前有一个I前缀。下面我们举个例子,来看看接口IComponent和它的标准执行,类Component。public interfaceIComponentpublic class Component :IComponentpublic interfaceIServiceProviderpublic interfaceIFormatable属性命名原则在属性的后面加上Attribute后缀,来自定义属性类。如下例所示。public classObsoleteAttributeEnum命名原则Enum需使用Pascal大写。Enum值名需使用Pascal大写。减少enum名中缩写的使用量。Enum名前不要加前缀(例如,adxxx表示ADO enums,rtfxxx表示多信息文本enum,等等。)。在enum类型上不要加Enum后缀。Enum名称需使用单数名词。比特域使用复数名词。如果列举值在参数或属性中使用,需用一个enum来定义列举值。这样工具就可以知道一个属性或参数可能的值了。public enum FileModeCreate,CreateNew,Open,OpenOrCreate,Truncate如果数字值to be bitwise ored together,就使用Flags对属性进行自定义。Flagspublic enum Bindings CreateInstance,DefaultBinding,ExcatBinding,GetField,GetProperty,IgnoreCase,InvokeMethod,NonPublic,OABinding,SetFieldSetProperty,Static在封装一个Win32 API时,这个规则有一个特例。从一个Win32标头产生内部定义是很常见的。你可以使用Win32大写,这种形式下字母通常全部大写。使用Int32作为一个enum的基础类型。如果这个enum代表标志,而且标志又非常多(大于32),或者这个enum在将来可以发展成许多标志,或者类型需要与类型int有所不同以便向后兼容时,在这种情况下就产生了特例。只有在值可以被完全表示为一组位标志时,才使用enum。开集不能使用enum(例如操作系统版,等等)。只读和Const字段名用名词,名词短语,或名词的缩写命名静态字段。用Pascal大写命名静态字段。不要用匈牙利文类型的符号作静态字段名的前缀。参数名使用描述性参数名。参数名应该具有足够的描述性,这样在大多数情况下参数名和它的种类可以用来确定它的意思。用camel大写方式命名参数。根据参数的意思来命名参数,而不是根据参数的种类来命名。我们希望开发工具可以用很方便的方式提供关于参数种类的信息,这样参数名可以得到更好的使用,可以对语义而不是对种类进行描述。但是偶尔使用根据类型命名的参数名也是完全可以的。不要使用保留参数。如果在下一个版本中需要更多的数据,可以增加进来。不要用匈牙利文类型的符号作为字段名的前缀。Type GetType (stringtypeName)string Format (stringformat, object args)方法命名原则用动词或动词短语命名方法。用下述范例所示的Pascal大写方式命名方法。RemoveAll()GetCharArray()Invoke()属性命名原则用名词或名词短语命名属性。用Pascal大写命名属性。属性与类型要一样。用与一个类型的名称相同的名字来命名属性时,就使这个属性的类型成为那个类型。虽然听起来有些奇怪,但这是正确的。下面的例子正确使用了属性命名原则。public enum Color .public class Control public Color Color get . set . 下例就是不正确的。public enum Color .public class Control public int Color get . set . 在那个不正确的例子中,要想引用Color enum是不可能的,因为Color,Xxx会被翻译成一个成员访问,它会首先获得Color属性的值(int种类),然后再访问那个值的成员(它应该是System.Int32的一个实例成员)。事件命名原则用EventHandloer后缀命名事件处理程序,如下列所示。public delegate voidMouseEventHandler(object sender, MouseEvent e);使用名为sender和e的两个参数。Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型。与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类。public delegate void MouseEventHandler(objectsender, MouseEvente);用EventArgs后缀命名事件自变量类,如下例所示。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; 命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxxAfterXxx的方式)。例如,可以被取消的结束事件就有Closing事件和Closed事件。public event ControlEventHandler ControlAdded /.用动词命名事件。区分大小写不要使用需要对大小写作出区分的名称。各成分不论是在区分大小写还是不区分大小写的语言下都必须是完全可用的。因为不区分大小写的语言不能在同样的环境下对只有大小写不同的两个名称作出辩别,所以成分必须避免这种情况。不要产生两个名称相同只有大小写不同的名称空间。namespace ee.cummings;namespace Ee.Cummings;带有两个参数的一个类型,其两个参数的名称不能只有大小写不同。void foo(string a, string A)System.WinForms.Point p;System.WinForms.POINT pp;带有两个属性的一个类型,其属性的名称不能只有大小写不同。int Foo get, set;int FOO get, set带有两种方法的一个类型,其方法的名称不能只有大小写不同。void foo();void Foo();避免类型名出现混淆不同的语言使用不同的术语以识别基本管理类型。设计人员必须避免使用对语言有专门要求的术语。遵照本章说明的规则,避免出现类型名称混淆的情况。使用语义上有意义的名称,而不要使用类型名称。在很少见的情况下,参数除了类型以外语义上没有任何意义,这时使用类属名。例如,一个类支持将多种数据类型写进一个流中,这个类可能有下列方法:void Write(double value);void Write(float value);void Write(long value);void Write(int value);void Write(short value);上面的例子在下述对语言有专门要求的情况下是首选。void Write(double doubleValue);void Write(float floatValue);void Write(long longValue);void Write(int intValue);void Write(short shortValue);在极端情况下,每一个基本数据类型需要有唯一的命名方式,此时使用下面的通用类型名称。C# type nameVisual Basic type nameJScript type nameVisual C+ type nameIL representationUniversal type namesbyteSByteSBytecharI1SBytebyteBytebyteunsigned charU1ByteshortShor

温馨提示

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

评论

0/150

提交评论