




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Visual Basic编程规范编程规范注重于程序的物理结构和外观,而不是程序的逻辑结构。使用统一编码约定集合的主要原因,是使应用程序的结构和编码风格标准化,使之容易阅读、容易理解而且容易维护。1.Visual Basic IDE(集成开发环境)设置 必须打开设置选项的“要求变量声明”,“对齐控件到网格”,“自动缩进”开关。 Tab的宽度统一为4个空格,网格单位一律设为:width 60 height 60。2.命名约定在任何时候,不能使用中文及全角字符,只允许使用英文字母、下划线和数字。2.1工程的命名 ActiveX控件和DLL工程命名格式为(.Lib),EXE工程直接命名,如果是通用组件工程,直接命名,如果是项目或产品工程,则使用项目或产品缩写作为前缀。如:XWY.Lib。 工程命名不必缩写,为了表达意思和用途,可以尽可能地长,而且命名格式采用 (名词) 、 (形容词 + 名词) 或 (名词 + 动作的名词形式)。如: StockOperationLib或StockLib。2.2变量的命名程序中的变量遵循匈牙利表示法,即“前缀+变量含义”,变量的含义为一个或多个英文单词,每个单词的第一个字母大写。变量前缀为三个小写字母示意其类型,所需添加的前缀遵循微软在MSDN中的建议。列表如下: 对于一般的计数器变量定义,应该尽可能地简单,如:Dim i As IntegerFor i = 0 to 100Next i范围标识:全局变量加前缀g_ ,例如:g_strFdbm;模块级变量加前缀:m_ 例如:m_strFdbm;过程级变量不加前缀。 全局变量和模块级变量应该尽量使用全名称,不推荐使用缩写,如:gEntityManager常见的变量类型和控件类型前缀如下表所示:表一 变量类型前缀列表数据类型前缀示例Boolean bln blnLoggedIn Currency cur curSalary Control ctl ctlLastControl Double dbl dblMiles ErrObject err errLastError Single sng sngYears Handle hwd hwdPicture Long lng lngOnHand Object obj objUserTable Integer int intAge String str strName User-defined type udt udtEmployee Variant (including Dates) vnt vntDateHired Array arr arrEmployees 表二 数据库对象前缀列表数据库对象前缀示例Databasedbs dbsAccounts Recordsetrec recForecast commandcmd cmdQuery connectioncon conSql 2.3控件的命名 控件命名一律使用控件类型缩写+控件用途的命名方式,缩写规则同变量命名,以下是常用控件的类型缩写,应该严格遵守。如果使用了新的控件(包括升级版本),必须向公司提出申请,经评审通过后,协同一致其类型名称缩写,再进行使用。 表三 控件类型前缀列表控件前缀举例ADO Data ado adoBiblio Animated button ani aniMailBox Checkbox chk chkPrint Combo box cbo cboTitle Command button cmd cmdCancel Communications com comFax Data dat datBiblio Data-bound combo box dbcbo dbcboLanguage Data-bound grid dbgrd dbgrdQueryResult Common dialog control dlg dlgCommon Control ctr ctrCurrent Directory list box dir dirSource Drive list box drv drvTarget DTPickerDropDateControl dt EnumEditBox enm File list box fil filSource Frame fra fraLanguage Form frm frmMain Vfgrid grd Graph gra Group push button gpb gpbChannel Hierarchical flexgrid flex flexOrders Horizontal scroll bar hsb hsbVolume Image img imgIcon Image ImageList img Label lbl lblHelpMessage Line lin linVertical List box lst lstResultCodes ListView lv MCI mci mciVideo MDI child form mdi mdiContact Menu control mnu mnuFileOpen NumEditBox nm OLE container ole olePhoto Option button opt optSpanish Panel pnl pnlSettings Picture box pic PicDiskSpace Picture clip clp ClpToolbar ProgressBar prg prgLoadFile Report rpt Scroll bar sbr Shape shp ShpCircle Slider sld sldScale Spin spn StatusBar st ToolBar tb Text box txt TxtAddress Timer tmr TmrAlarm TreeView tv tvFlbm Vertical scroll bar vsb vsbRate 2.4函数和过程的命名 此处函数包括sub和function,以下这两种过程统称为函数。 函数表示的是一个动作,所以它的结构应该是 动词+名词,动词必须小写,后面的名称首字母大写,如:getMaterialCode、updateGrid、readOrder 函数命名尽量不要使用缩写,而且它的名称应该使人一目了然,能够从名称就知道这个函数的功能,不要使用无意义的函数名称,如:getCode,update,readData。 当函数名称不足以表达其功能时,使用在函数头部加上让调用者足够明白的注释。 参数的命名:参数命名的原则是全部小写,如果参数包括两个或以上的单词时,首单词字母小写,其它单词首字母大写,如showCol、isUpdate。2.5常量的命名 常量的命名应该全部大写,使用_作为单词间的分隔符,单词尽量使用全名称,如: Public Const MSG_EMPTY_ROW As String = “有空行存在!” 解释:(1) 对一些常用词应该使用简写,如MSG(2) 使用Public来声明常量(3) 对常量的声明必须带上类型,如上面的As String2.6属性的命名 属性的命名采用首字母大写的原则,如ItemCount.Item 2.7类、窗体和模块的命名 类、窗体和模块命名采用前缀+功能名词,并且单词首字母大写。类的前缀为(Cls),如:ClsSystemConfig;窗体前缀Frm,如:FrmList;模块前缀为Mod,如ModList。以上三种命名在一个项目内必须保持唯一。2.8自定义控件的命名 自定义控件的命名:名词 + Ctrl 如:EditGridCtrl3. 书写格式约定3.1定义 定义的代码块应该放在一起,不要在中间定义变量,变量的定义应该顶行进齐,不能缩进。如下: Dim i As IntegerDim j As IntegerDim em As EntityManager3.2空行 空行是区分代码块与块的间隔,在函数之间必须加上空行(两行左右),而函数内部,变量声明块和实现块(实现块指除变量声明外的其它代码)要使用空行来间隔(一行),实现块的内部,通过空行来标识一个功能段,如: Private Sub Check(Order As NYSaleBackLib.Order) 减少库存 Dim objStockItem As NYStockLib.StockItemDim objStock As NYStockLib.StockDim i As IntegerSet objStock = CreateStock()For i = 0 To Order.ItemCount - 1Set objStockItem = Order.item(i) 减少库存 Call objStock.ReduceItem(objStockItem, True) Next i Set objStock = Nothing End Sub(注意:不要使用过多的空行,空行太多影响代码阅读!) 3.3缩进 缩进必须严格执行,变量声明块不缩进,实现块必须保证全部缩进(即不可能有实现块是行首对齐的)。 每个单位的代码缩进为一个TAB,非相关代码留一行空白的间隔。注:Goto标签不缩进。 对于基本的控制结构,必须要有缩进,如:IF、DO、WITH、FOR、OPEN、SELECT块,缩进示例如下:Private Function GetMax(Byref lngArray() As Long) As Long Dim lngMax As Long Dim lngCount as long GetMax=0 For lngCount =0 to Ubound(lngArray) If lngArray (lngCount)lngMax Then lngMax=lngArray(lngCount) End If Next End Function 对于过长的语句,必须使用续行,续行位置要有明显意义,示例: sql = “SELECT code , name FROM Person “ _ & “ WHERE code LIKE 001% “ & “ and code LIKE 002% “函数的参数如果过长,也应该续行,示例: 增加库存 ProductCode 产品编号 Spec 长度规格 Color 颜色 Patch 是否拼圈 Volumn 盘号 Ordinal 子库存顺序号 Length 长度 IsCheck 是否审核入库增加(否则为弃审出库增加) Public Sub AddDetail(ProductCode As String, _ Spec As Double, _ Color As String, _ Patch As Boolean, _ Volumn As String, _ Ordinal As Integer, _ Length As Double, _ IsCheck As Boolean)4.注释约定4.1注释量 程序的注译越详尽,越仔细越好。程序中声明的每一个变量,能加上注译最好,至少用来运算或者保存关键数据的变量必须加上注译。对于每一段逻辑上实现某个基本功能的几句代码,最好在其上一行加上简单注译。对于每一个自定义的函数,不管大小都必须加上注译。4.2格式 注译的格式如下:* 函数所实现的功能 函数的参数1的含义:XXXXX 函数的参数2的含义:XXXXX 函数返回值所代表的错误信息:XXXXX 函数的返回值为0表示执行成功,为其它值表示执行失败 * Public(Private) Function ForExample() As Long End Function在每个代码模块(窗体、类、模块、控件)的最上面,必须写上代码编写人、代码创建时间、代码修改时间和修改说明。示例: 库存修改窗体 作者 XXXXXX 建立日期 2009-6-22 修改日期 2009-6-23 修改人 XXXXXX 增加对库存修改时同时影响最后入库日期的功能 5.程序设计约定1.程序一律从Main()函数开始执行。2.同一个程序在一台机器同时只能运行一次,既不能同时运行同一个程序的多个副本。即If App.PrevInstance = True Then End3.同一个登录用户同时只能登录同一个系统一次。4.建议使用Long型的变量来代替Integer类型。这样做可以减少一些数据溢出的错误,而且,在Win32位平台上,CPU处理32位的数据比16位的数据速度更快。5.在连接字符串时使用 & 运算符,避免使用 运算符。下面例子用 运算符来连接可能会导致问题。例如:vntVar1 = 10.01vntVar2 = 11vntResult = vntVar1 + vntVar2 vntResult = 21.01vntResult = vntVar1 & vntVar2 vntResult = 10.01116.当产生长字符串时,使用下划线连接字符产生多行代码,这样便于阅读或调试字符串。当显示一个消息框 (MsgBox) 或输入框 (InputBox),或产生一个 SQL 字符串时,这一技术特别有用。例如:Dim Msg As StringMsg = This is a paragraph that will be _& in a message box. The text is _& broken into several lines of code _& in the source code, making it easier _& for the programmer to read and debug.MsgBox MsgDim QRY As StringQRY = SELECT * _& FROM Titles _& WHERE Year Published 1988TitlesQry.SQL = QRY7.不要将类型转换的工作交给VB自动去做,而使用以下类型转换函数。CBool(expression)、CByte(expression) 、CCur(expression) 、CDate(expression) 、CDbl(expression)、CDec(expression、CInt(expression)、CLng(expression) 、CSng(expression) 、CStr(expression)、CVar(expression) 、Val(expression)。8.编一个函数处理所有已知错误在Main()函数或主窗体Load过程中添加如下代码: * 打开错误日志文件,在Form_Unload()中关闭 * Dim strExePath As String If Right(App.Path, 1) = Then strExePath = App.Path Else strExePath = App.Path & End If intErrLogFileHandle = FreeFile() Open strExePath +
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高铁站安全知识培训课件
- 济南市2024-2025学年八年级下学期语文期末测试试卷
- 电费电价知识培训总结课件
- 电脑课件之家信息检索
- 高考小说主题探究课件
- 建设项目可研及勘察设计合同
- 道路工程合同
- 电网高级知识培训课件
- pet考试真题5及答案
- 四川省自贡市高新技术产业开发区六校2024-2025学年四年级上册期中考试科学试卷(含答案)
- 2025年四川省高考化学试卷真题(含答案解析)
- 教育测量与评价 课件全套 朱德全 第1-15章 教育测量与评价概述- 教育测评结果的统计处理
- 2025年中海油招聘笔试参考题库附带答案详解
- 学校学生评教表
- 《风力机理论与设计》全套教学课件
- 1999年版干部履历表
- 新入职员工岗前三级安全教育培训
- 小学书法练习指导四年级上册教学设计(苏少版)
- 丽声北极星自然拼读绘本第六级 The Clever Beaver 课件
- 1-AMS2628A-2013-中文版
- 食品安全“五常法”管理制度
评论
0/150
提交评论