密级:内部公开文档编号:NTT_SD_VBCGF版本号:V1.0VB编程规范惠州市新中新电子技术开发有限公司编制:生效日期:审核:批准:---------------------------------------------------------------------惠州市新中新电子技术开发有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。VB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第2页共17页文件更改摘要:日期版本号修订说明修订人审核人批准人2008-06-28V0.1创建2008-08-08V1.0正式版本VB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第3页共17页目录一、一般代码规则.....................................................4二、常量变量的命名规则:.............................................42.1变量范围前缀...........................................................................................................42.2常量............................................................................................................................42.3变量数据类型............................................................................................................52.4描述变量和过程名....................................................................................................52.5用户定义的类型........................................................................................................6三、VB中控件的命名:................................................63.1推荐使用的控件前缀................................................................................................63.2推荐使用的数据访问对象(ADO)的前缀..............................................................93.3推荐使用的菜单前缀..............................................................................................103.4为其它控件选择前缀..............................................................................................10四、代码规范........................................................10五、文件名..........................................................13六、模块化..........................................................13七、用户界面(GUI)设计规范.........................................131.用户界面(GUI)设计的一般原则.........................................................................132.GUI设计参考..........................................................................................................15VB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第4页共17页一、一般代码规则可读性原则,这是评价程序质量的首选指标,宁可不要一些技巧也要保证程序的易读特性,不要因过分追求技巧而牺牲程序的可读性。功能独立性原则。每一程序块只完成一个独立的功能,反过来,每一独立的功能只在一程序块内完成,尽量低耦合、高内聚。少用及慎用全局变量原则,除非为了大幅度简化参数接口或增加程序可读性.。如果使用了全局变量,则全局变量必须能够反映全局意义且在引用处必须注释清除,局部变量避免与全局变量重名,不要显式返回全局变量(如return),全局变量最好不作为函数或过程的输入/输出参数,若确实有必要,应尽量将全局变量封装到结构或类中,减少其独立出现次数。二、常量变量的命名规则:原则上一定要申请变量,即在模块头加入:OptionExplicit变量的命名应遵从变量名=作用域+变量类型+变量含义2.1变量范围前缀随着工程大小的增长,划分变量范围的工作也迅速增加。在类型前缀的前面放置单字母范围前缀标明了这种增长,但变量名的长度并没有增加很多。范围前缀例子全局GgstrUserName类成员或模块级MmblnCalcInProgress本地到过程无dblVelocity如果一个变量在标准模块或窗体模块中被声明为Public,那么该变量具有全局范围。如果一个变量在标准模块或窗体模块中被分别声明为Private,那么该变量有模块级范围2.2常量常量名的主体是大小写混合的,每个单词的首字母大写。尽管标准VisualBasic常量不包含数据类型和范围信息,但是象i、s、g和m这样的前缀对于理解一个常量的值和范围还是很有用的。对于常量名,应遵循与变量相同的规则。例如:VB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第5页共17页mintUserListMax'对用户列表的最大限制'(整数值,本地到模块)gstrNewLine'新行字符'(字符串,应用程序全局使用)2.3变量数据类型用下列前缀来指明一个变量的数据类型。DatatypePrefixExampleBooleanblnblnFoundBytebytbytRasterDataCollectionobjectcolcolWidgetsCurrencycurcurRevenueDate(Time)dtmdtmStartDoubledbldblToleranceErrorerrerrOrderNumIntegerintintQuantityLonglnglngDistanceObjectobjobjCurrentSinglesngsngAverageStringstrstrFNameUser-definedtypeudtudtEmployeeVariantvntvntCheckSum2.4描述变量和过程名变量或过程名的主体应该使用大小写混合形式,并且应该足够长以描述它的作用。而且,函数名应该以一个动词起首,如InitNameArray或CloseDialog。对于频繁使用的或长的项,推荐使用标准缩略语以使名称的长度合理化。一般来说,超过32个字符的变量名在VGA显示器上读起来就困难了。VB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第6页共17页当使用缩略语时,要确保它们在整个应用程序中的一致性。在一个工程中,如果一会儿使用Cnt,一会儿使用Count,将导致不必要的混淆。变量含义:接近变量含义的英文单词,如Meter表示表底,Bill表示清单。若用个单词表示各个单词应用大写字母打头,如MeterValue表示表底值。根据以上命名规则,我们对变量mstrCallingNo应知道该变量是一个类的数据成员,该成员是零结尾的字符串,存储的是主叫号码。这样我们就能望文生义,知道该变量的作用域、类型和含义,便于以后的维护和实际的编程。2.5用户定义的类型在一项有许多用户定义类型的大工程中,常常有必要给每种类型一个它自己的三个字符的前缀。如果这些前缀是以u开始的,那么当用一个用户定义类型来工作时,快速识别这些类型是很容易的。例如,ucli可以被用来作为一个用户定义的客户类型变量的前缀。注:对于非通用的变量,请在定义时加以注释说明,变量定义尽可能放在最开始处。三、VB中控件的命名:应该用一致的前缀来命名对象,使人们容易识别对象的类型。下面列出了VisualBasic支持的一些推荐使用的对象约定。3.1推荐使用的控件前缀控件类型前缀例子3DPanelpnlpnlGroupADODataadoadoBiblioAnimatedbuttonanianiMailBoxCheckboxchkchkReadOnlyCombobox,drop-downlistboxcbocboEnglishCommandbuttoncmdcmdExitCommondialogdlgdlgFileOpenVB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第7页共17页CommunicationscomcomFaxControl(当特定类型未知时,在过程中所使用的)ctrctrCurrentDatadatdatBiblioData-boundcomboboxdbcbodbcboLanguageData-boundgriddbgrddbgrdQueryResultData-boundlistboxdblstdblstJobTypeDatacombodbcdbcAuthorDatagriddgddgdTitlesDatalistdbldblPublisherDatarepeaterdrpdrpLocationDatepickerdtpdtpPublishedDirectorylistboxdirdirSourceDrivelistboxdrvdrvTargetFilelistboxfilfilSourceFlatscrollbarfsbfsbMoveFormfrmfrmEntryFramefrafraLanguageGaugegaugauStatusGraphgragraRevenueGridgrdgrdPricesHierarchicalflexgridflexflexOrdersHorizontalscrollbarhsbHsbVolumeImageimgImgIconImagecomboimgcboImgcboProductImageListilsIlsAllIconsVB编程规范V1.2惠州市新中新电子技术开发有限公司®版权所有©第8页共17页LabellblLblHelpMessageLightweightcheckboxlwchkLwchkArchiveLightweightcomboboxlwcboLwcboGermanLightweightcommandbuttonlwcmdLwcmdRemoveLightweightframelwfraLwfraSaveOptionsLightweighthorizontalscrollbarlwhsbLwhsbVolumeLightweightlistboxlwlstLwlstCostCentersLightweig