




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
版本号:V2.1程序开发编制标准(Visual Basic 6.0)目 录1序言12通用源代码格式规则12.1缩进12.2页边空格12.3分隔空格12.4空行13代码编写规则23.1括号23.2变量和类型23.2.1命名的规范23.2.2局部变量33.2.3全局变量的使用33.2.4变量的声明33.2.5用户自定义类型33.3过程和函数33.3.1命名规范33.3.2形式参数43.4语句53.4.1if语句53.4.2case语句53.4.3do while/loop 和do until/loop语句63.4.4for 语句63.4.5do /loop until 和do /loop while语句63.4.6for each /next语句63.4.7with/end with 语句63.4.8语句的嵌套63.5错误处理63.5.1一般话题63.5.2on error resume next的使用63.5.3on error goto 的使用73.6类类型73.6.1命名和格式73.6.2私有成员73.6.3方法73.6.4属性84文件84.1工程文件84.1.1命名84.2窗体文件84.2.1命名84.3模块文件94.3.1命名94.4类文件94.4.1命名94.5文件头95窗体95.1窗体95.1.1窗体命名标准95.1.2窗体编码规则96控件106.1用户自定义控件106.2控件模块106.3控件实例命名约定106.4控件的前缀106.5MO中命名的规则126.6数据库对象前缀137程序书写规则和注释147.1书写规则147.2注释147.2.1综述147.2.2文件的标识147.2.3函数和过程的注释147.2.4变量的注释157.2.5项目修改记录追踪15191 序言本文档详述了在Visual Basic 6 下进行编程的代码编写标准。通过该方法,开发人员可以在他们所编写的代码中保持一贯的风格。这样做的目地是使在开发小组中的每一个程序员都可以明白其它程序员的代码。这有助于提高代码质量编写的可读性和使用的一贯性。本文档适用于参加国家电力公司南方公司超高压运行维护GIS系统开发的人员。2 通用源代码格式规则2.1 缩进缩进是指在每一级有四个空格。四个空格等同于按Tab键一次。Tab键等同空格的个数在Visual Basic环境的Tools菜单Option子菜单中的Editor选项卡中指定,如下图:2.2 页边空格 VB源码边缘不留页边空白。源码一行通常被设置成80字符宽,一般情况下不允许超过这个边界,超出到另一行的语句会应一个空格加一个下划线之后与前面的语句相联。当一个语句被打断相连时,它应比原来的那一行语句缩进四个字符。Begin End 语句(用于描述菜单等信息)不要试图在VB中写一个Begin End 语句对,所有的Begin End 语句均应由VB自动产生,其缩进效果也采用VB本身的缩进机制(三个空格)。2.3 分隔空格Visual Basic自动产生分隔空格。2.4 空行应该时不时的在各方法之间加入一些空格行来分割大段的代码;还应该在方法与方法之间加入一行的空格行。3 代码编写规则3.1 括号不要在一个语句中使用不必要的括号(为使代码清晰加入的括号除外)。括号只应在源代码中需要的地方使用。以下的例子示范了错误和正确的使用:if (I = 42) then /错误 多余的括号if (I = 42) or (J = 42) then /正确 需要括号3.2 变量和类型3.2.1 命名的规范变量命规范根据类型的不同加上前缀,前缀参照下表:前缀类型例子.blnBIntegerlngLongsngSingledblDouble.curCurrency.strString.vrtVariantdatDateobjObject.g全局变量m模块级变量变量一般以前缀开头。若有一个变量为几种类型的组合,用几个前缀联合起来使用。如:gintCount表示全局整数类型变量。其中全局变量g放在最前面,其次基本类型。变量名以有意义的大写字母开始,一个会导致某个行为的变量应以动词开头,如strFormatDrive。 变量名字除前缀之外的第一个字母应为大写,而其它字母应错落有致。规则的例外是循环变量和坐标变量:其中循环变量可固定用I,J,K 表示。坐标变量可固定用X,Y 表示。逻辑变量的名字应能充分表达准确的真或假的意思。3.2.2 局部变量一个过程中的局部变量应遵循所有其它变量的使用和命名约定。临时变量的取名应合理。如果必须的话,在一进入过程就应初始化局部变量3.2.3 全局变量的使用使用全局变量是不推荐的。但是,在某些时候还是必须使用,而且它们也只应在必须使用的时候才使用。在这种时候,你应努力只在一段上下文范围内使用全局变量。例如,一个全局变量只应在一个模块内是全局的。如果打算在多个模块内使用全局数据,你应将它们移到一个公共的模块中然后声明成公用被其它所有模块使用。全局变量初始化时,数值变量被初始化为0,字符串被初始化为一个零长度的字符串 (。Variant 变量被初始化为 Empty。用户自定义类型的变量的每个元素都作为各自独立的变量进行初始化。3.2.4 变量的声明禁止使用Dim来声明变量。在过程、子过程和函数过程中用Private来声明变量,表示变量的范围在声明在声明它的过程中;在窗体或模块中(.frm,.bas)用Private声明,表示该变量适用于窗体或模块中任一过程;而全局变量在公共模块中用Public声明,表示该变量适用于应用程序每一处。3.2.5 用户自定义类型如果工程中出现了用户自定义类型,也应给每种类型一个它自己的三个字符的前缀,并在前面加上u。如ulic会被认为用户自定义类型。3.3 过程和函数3.3.1 命名规范自定义的过程一律以小写sb开头,函数一律以fn开头,除前缀外过程和函数的名字永远应该以大写的字母开头并且中间错落分明以便于可读性。下面是一个不正确的格式的过程名称: sub sbthisisapoorlyformattedroutinename;下面是一个合适的大小写过程名称的例子: sub sbThisIsMuchMoreReadableRoutineName;过程的名称应该同它的内容相符。一个会导致某个行为过程应以动词开头。例如: sub sbFormatHardDrive;一个用于设置输入参数的过程应以单词set作为前缀,例如: sub sbSetUserName;3.3.2 形式参数 命名所有形参的名字应是十分符合它们所代表的意义,特别是应该以传送到过程中的标志符的名称为基础。一个好的参数名称应以字符A为前缀,例如:sub sbSome(strAuserName as string; intAuserAge as integer);“A”前缀按约定表示该参数据的名称是与类类型中的一个属性或私有变量的名称相对应。 参数的排序下面的形参的顺序重点说明了注册者调用约定调用的好处。最常用的参数应放在第一位,其它的参数应按从左到右的顺序排列。输入参数列表应放在输出参数列左边。将通用的参数放在特殊参数的左边,例如: sub sbSome(strAplanet as string, strAContinent as string, strAcountry as string, strAstate as string) 名称的冲突 当使用拥有两个名称相同的过程的两个模块时,要在调用该过程时写上相关的模块的前缀,例如: sysUtile.FindClose(SR);或 windows.FindClose(Handle);3.4 语句3.4.1 if语句在if/then/else/end if语句中最常发生的行为应放在then子句中,而其它发生可能性较小的行为应放在else子句中。尽量避免使用嵌套的if语句,在这种情形下应用多个if语句来判断各种可能。禁止if嵌套超过四级深度。应使代码编写得更加清晰、明了。若超过就得改写。不要在if语句中使用不必要的圆括号。如果在if语句中有多个条件需要测试,这些条件应按计算强度由少到多的顺序从左到右排列。这样做能使编译代码时获得布尔估算逻辑的捷径,从而使你的代码获得最佳的优化。举例来说,如果条件1快过条件2,而条件2快过条件3,那么if语句中的排列应是 if 条件1 and 条件2 and 条件3 then3.4.2 case语句一般性话题在一个case语句中的各个独立的单元应以数字或字母顺序排列。每一个case单元的动作行为应保持简单而不应该超过四到五行代码。如果所要执行的动作过于复杂应采用独立的过程或是函数。case语句中的else只有当需要缺省行为或处理错误时才使用。 格式case语句应遵循其它结构的缩格和命名约定。3.4.3 do while/loop 和do until/loop语句在一个while循环中所用的初始化代码应紧靠在进入while循环前面出现而不要被其它不相关的语句隔开。任何结束后的处理应在循环之后立即进行。3.4.4 for 语句for 语句只有当循环次数已知的情况下才能取代while语句使用。3.4.5 do /loop until 和do /loop while语句尽量不要使用此二种语句。3.4.6 for each /next语句对数组和集合的每一个元素进行循环使用此语句。3.4.7 with/end with 语句对同一对象的多个属性进行赋值时,应使用with语句。with语句遵循本文档说明的命名约定和缩格的格式规则。3.4.8 语句的嵌套语句的嵌套一般不超过三层,特殊情况不超过四层,超过四层用其它方法重写。3.5 错误处理3.5.1 一般话题错误的处理大量地使用在程序运行时错误纠正。3.5.2 on error resume next的使用禁止使用。如果的确需要则必须先处理后再执行rersume next。3.5.3 on error goto 的使用如果能预料程序出错的可能类型,就必须编写相应的错误处理代码,通常,你没有必要为了只是简单地在屏幕上显示一个错误信息而使用on error goto语句,一般情况下,处理完的错误对象应该清空。如:Err.clear3.6 类类型3.6.1 命名和格式类类型的名称应符合使用它们的目的。类型名字应加以前缀Cls以表明这是一个类型的定义。3.6.2 私有成员 命名/格式类的私有成员命名遵循与变量标识符同样的约定除了它们应以m_为前缀,来表明这是一个私有成员的名称。 可视化所有的私有成员在类外是不可见的。想在类的范围之外存取私有成员得通过属性存取来使用。3.6.3 方法 命名/格式方法的命名应遵循本文档中有关过程和函数的约定叙述。类方法名前不用sb或fn前缀。 属性存取方法所有存取类的方法都只能出现在类的public部分。属性存取方法的命名应遵循过程和函数的约定规则。例如:Public Property Get Data() As Variant Set Data= m_ValueEnd PropertyPublic Property Let Data(ByVal vrtAValue As Variant)Set m_Value = vrtAValueEnd Property3.6.4 属性 命名/格式属性如果是表示为一个私有成员的存取器的话,那么它的名字应是它们所操作的成员名字除去解释符m_。属性的名字应是名词,不是动词。属性表示的是数据,而方法表示的是行为。数组类型的名称应为复数。一般情况下属性的名称应为单数。 使用存取的方法尽管没有要求,但还是建议尽量少地为一个私有的属性而使用写入存取方法。4 文件4.1 工程文件4.1.1 命名工程文件应取个描述性的名字,并与生成的EXE文件相同。例如,demo.vbp,生成demo.exe可执行文件,文件名称应使用英文。4.2 窗体文件4.2.1 命名窗体文件后缀使用frm,任何一工程中的第一个文件叫FrmMain.frm。一个窗体文件的取名应可以描述使用该窗体的目的。例如,一个“关于”的窗体的文件名应是FrmAbout.frm。4.3 模块文件4.3.1 命名数据模块文件后缀使用bas,数据模块的取名应能表示使用该数据模块的目的,例如,文件处理的模块文件名字应为FilesDeal.bas.4.4 类文件4.4.1 命名类文件后缀采用cls,取名应能表示使用类的目的,例如,文件处理的类文件名字应为FilesDeal.cls4.5 文件头建议在所有源文件、工程文件、模块等等中使用信息化文件头。一个良好的文件头应包含以下信息-版权 著作的年、月、日-5 窗体5.1 窗体5.1.1 窗体命名标准窗体命名应该与窗体文件名称一致,如窗体名称窗体文件名称FrmAboutFrmAbout.frm5.1.2 窗体编码规则所有的窗体模块都应包含一个Form_load函数,该函数用来创建、设置、模式地显示窗体,并窗体初始化窗体模块中的全局变量。所有的窗体模块都应包含一个Form_Unload函数,该函数用来卸载窗体,并在此函数中关闭窗体模块中应用的设备、文件以及对模块中的对象全局变量置空。6 控件6.1 用户自定义控件在标准控件中命名出来的控件的名称应该有一个描述性的名字和一个3个字符的指示前缀,可以表示公司、个人或其它实体。本小组定义为小组名(nst)。例如,一个为自行编写的时钟控件的名称定义为: nstClock 注意:那三个前缀字符是小写的。6.2 控件模块控件模块应只包含一个主要的控件,一个主要的控件是指出现在控件栏中的控件。主要控件的辅助控件/对象应放入到同一个模块中。6.3 控件实例命名约定所有的控件都应取个描述性的名称。在设计控件类型时应设计一个小写的前缀。使用前缀而不使用后缀的原因是在搜寻时,在对象检查器和代码探索器中搜寻控件的名字比搜寻控件的类型更容易实现。6.4 控件的前缀以下控件的前缀可以用来设计Visual Basic 6 中的标准控件。控件类型前缀例子3DpanelpnlpnlGroupADO DataadoadoBiblioAnimated buttonanianiMailBoxCheckboxchkchkReadOnlyCombo box,list boxcbocboEnglishCommand buttoncmdcmdExitCommon dialogdlgdlgFileOpenCommunicationscomcomFaxControlctrctrCurrentDatadatdatBiblioData-bound Combo boxdbcbodbcboLanguageData-bound griddbgrddbgrdQueryResultData-bound list boxdblstdblstJobTypeData combodbcdbcAuthorData griddgddgdTitlesData listdbldblPublisherData repeaterdrpdrpLocationDate pickerdtpdtpPublishedDirectory list boxdirdirSourceDrive list boxdrvdrvTargetFile list boxfilfilSourceFlat scroll barfsbfsbMoveFormfrmfrmEntryFramefrafraLanguageGaugegaugauStatusGraphgragraRevenueGridgrdgrdPricesHierarchical flexgridflxflxOrdersHorizontal scroll barhsbhsbVolumeImageimgimgIconImage comboimgcboimgcboProductImage ListilsilsAllIconsLabellbllblHelpMessageLight weight check boxlwchklwchkArchiveLight weight combo boxlwcbolwcboGermanLight weight command buttonlwcmdlwcmdRemoveLight weight framelwfralwfraSaveOptionsLight weight horizontal scroll barlwhsblwhsbVolumeLight weight list boxlwlstlwlstCostCentersLight weight option buttonlwoptlwoptIncomeLevelLight weight text boxlwtxtlwoptStreetLight weight vertical scroll barlwvsblwvsbYearLinelinlinVerticalList boxlstlstPolicyCodesList ViewlvwlvwHeadingsMAPI messagempmmpmSentMessageMAPI sessionmpsmpsSessionMCImcimciVideoMenumnumnuFileOpenPopupMenupmupmuFileOpenMonth viewmvwmvwPeriodMS ChartchtchtSalesbyRegionMS FlexgridmsgmsgClientsMS TabmstmstFirstOLE containeroleoleWorksheetOption buttonoptoptGenderPicture boxpicpicVGAPicture clipclpclpToolbarProgress BarprgprgLoadFileRemote DatardtrdtTitlesRichTextBoxrtfrtfReportShapeshpshpCircleSlidersldsldScaleSpinspnspnPagesStatusBarstastaDateTimeSysInfosyssysMonitorTabStriptabtabOptionsTextboxtxttxtLastNameTimertmrtmrAlarmToolbartlbtlbActionsTreeViewtretreOrganizationUpDownupdupdDirectionVertical scroll barvsbvsbRate6.5 MO中命名的规则以下的前缀可以用来设计MO中的数据类型:类 型前缀例子ESRIMapmapmapGeoinfomaplayerlyrlyrNotesimagelayerilyilyChinaLinelnlnCrossPolygonpypyCrosspointptptPlantpointsptsptsNotesRectanglerectrectSelectEllipseepsepsSelectRecordsetrstrstSelectSymbolsymsymNotesGeoEventgevgevPointLayerslyslysDeleteDataConnectiondcndcnPullutionGeoDatasetgdtgdtRiverGeoDatasetsgdsgdsRiverFieldsfdsfdsShapesFieldsfldfldShapeTextSymboltsymtsymNotesLabelRendererlrdlrdRoadDotDensityRendererdrddrdMineClassBreaksRenderercrdcrdSumValueMapRenderervrdvrdTree6.6 数据库对象前缀类型前缀例子ContainerconconReportsDatabasedbdbAccountsDBEnginedbedbeJetDocumentdocdocSalesReportFieldfldfldAddressGroupgrpgrpFinanceIndexidxidxAgeParameterprmprmJobCodeQueryDefqryqrySalesByRegionRecordsetrecrecForecastRelationrelrelEmployeeDeptTableDeftbdtbdCus
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业地产土地开发及转让合同范本汇编与应用案例
- 2025年公司法与商法考试试卷及答案
- “无人监考诚信考试”教学设计-2023-2024学年高一下学期主题班会
- 2025年版人工智能技术应用方向选调生模拟题与答案解析
- 2025年人力资源经理面试必-备问题及答案解析
- 2025年标准部面试题库及答案
- 2025年人力资源考试全真模拟题及答案公布
- 运动知识演讲活动策划方案(3篇)
- 2025年招聘面试技巧大揭秘行业前沿问题预测与答案解析
- 2025年民办学校教师招聘笔试经济学知识点详解与模拟题集
- 劳动防护用品检查方案2
- 2024年第九届“学宪法 讲宪法”竞赛题库及答案
- 2024年福建省托育服务职业技能竞赛理论考试题库(含答案)
- 3-1接车及库内作业作业《机车乘务员业务》教学课件
- SL+258-2017水库大坝安全评价导则
- 全国计算机等级考试二级Python复习备考题库(含答案)
- 婚内债务夫妻方承担协议书
- 食品仓储库房温湿度控制
- 部编小学语文四年级上册第8单元省级获奖大单元作业设计
- SMT-快速换线推进报告-.课件11
- 环保配套设施技术改造项目可行性研究报告
评论
0/150
提交评论