侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

VB编程的八个优良习惯第1/2页

技术  /  管理员 发布于 7年前   186

VB编程的八个优良习惯
1、"&"替换"+" 
2、变量命名大小写,语句错落有秩,源代码维护方面 
3、请养成以下的“对象命名约定”良好习惯
4、在简单的选择条件情况下,使用IIf()函数 
5、尽量使用Debug.Print进行调试 
6、在重复对某一对象的属性进行修改时,尽量使用With....End With 
7、MsgBox中尽量使用消息图标,这样程序比较有规范 
8、在可能的情况下使用枚举 


1、"&"替换"+"
在很多人的编程语言中,用“+”来连接字符串,这样容易导致歧义。良好的习惯是用“&”来连接字符串. 

不正确: 
Dim sMessage As String
sMessage = "1" + "2" 

正确: 
Dim sMessage As String
sMessage = "1" & "2" 

注意:"&"的后面有个空格

2、变量命名大小写,语句错落有秩,源代码维护方面

下面大家比较一下以下两段代码: 

读懂难度很大的代码:

Dim SNAME As String
Dim NTURN As Integer

If NTURN = 0 Then
If SNAME = "vbeden" Then
Do While NTURN < 4
NTURN = NTURN + 1
Loop
End If
End If 

容易读懂的代码:

Dim sName As String
Dim nTurn As Integer

If nTurn = 0 Then
   If sName = "vbeden" Then
      Do While nTurn < 4
          nTurn = nTurn + 1
      Loop
   End If
End If

[返回索引]

3、请养成以下的“对象命名约定”良好习惯

推荐使用的控件前缀

控件类型 前缀 例子 
3D Panel  pnl pnlGroup 
ADO Data ado adoBiblio 
Animated button ani aniMailBox 
Check box chk chkReadOnly 
Combo box, drop-down list box cbo cboEnglish 
Command button cmd cmdExit 
Common dialog  dlg dlgFileOpen 
Communications  com comFax 
Control (当特定类型未知时,在过程中所使用的) ctr ctrCurrent 
Data dat datBiblio 
Data-bound combo box dbcbo dbcboLanguage 
Data-bound grid dbgrd dbgrdQueryResult 
Data-bound list box dblst dblstJobType 
Data combo dbc dbcAuthor 
Data grid dgd dgdTitles 
Data list dbl dblPublisher 
Data repeater drp drpLocation 
Date picker dtp dtpPublished 
Directory list box dir dirSource 
Drive list box drv drvTarget 
File list box fil filSource 
Flat scroll bar fsb fsbMove 
Form frm frmEntry 
Frame fra fraLanguage 
Gauge gau gauStatus 
Graph gra graRevenue 
Grid grd grdPrices 
Hierarchical flexgrid flex flexOrders 
Horizontal scroll bar hsb hsbVolume 
Image img imgIcon 
Image combo imgcbo imgcboProduct 
ImageList ils ilsAllIcons 
Label lbl lblHelpMessage 
Lightweight check box lwchk lwchkArchive 
Lightweight combo box lwcbo lwcboGerman 
Lightweight command button lwcmd lwcmdRemove 
Lightweight frame lwfra lwfraSaveOptions 
Lightweight horizontal scroll bar lwhsb lwhsbVolume 
Lightweight list box lwlst lwlstCostCenters 
Lightweight option button lwopt lwoptIncomeLevel 
Lightweight text box lwtxt lwoptStreet 
Lightweight vertical scroll bar lwvsb lwvsbYear 
Line lin linVertical 
List box lst lstPolicyCodes 
ListView lvw lvwHeadings 
MAPI message mpm mpmSentMessage 
MAPI session mps mpsSession 
MCI mci mciVideo 
Menu mnu mnuFileOpen 
Month view mvw mvwPeriod 
MS Chart ch chSalesbyRegion 
MS Flex grid msg msgClients 
MS Tab  mst mstFirst 
OLE container ole oleWorksheet 
Option button opt optGender 
Picture box pic picVGA 
Picture clip clp clpToolbar 
ProgressBar prg prgLoadFile 
Remote Data rd rdTitles 
RichTextBox rtf rtfReport 
Shape shp shpCircle 
Slider sld sldScale 
Spin spn spnPages 
StatusBar sta staDateTime 
SysInfo sys sysMonitor 
TabStrip tab tabOptions 
Text box txt txtLastName 
Timer tmr tmrAlarm 
Toolbar tlb tlbActions 
TreeView tre treOrganization 
UpDown upd updDirection 
Vertical scroll bar vsb vsbRate 

--------------------------------------------------------------------------------
推荐使用的数据访问对象 (DAO) 的前缀
用下列前缀来指示数据访问对象 
数据库对象 前缀 例子 
Container con conReports 
Database db dbAccounts 
DBEngine dbe dbeJet 
Document doc docSalesReport 
Field fld fldAddress 
Group grp grpFinance 
Index ix idxAge 
Parameter prm prmJobCode 
QueryDef  qry qrySalesByRegion 
Recordset rec recForecast 
Relation rel relEmployeeDept 
TableDef tbd tbdCustomers 
User usr usrNew 
Workspace wsp wspMine 

--------------------------------------------------------------------------------

应用程序频繁使用许多菜单控件,对于这些控件具备一组唯一的命名约定很实用。除了最前面 "mnu" 标记以外,菜单控件的前缀应该被扩展:对每一级嵌套增加一个附加前缀,将最终的菜单的标题放在名称字符串的最后。下表列出了一些例子。

推荐使用的菜单前缀 
菜单标题序列 菜单处理器名称 
File Open mnuFileOpen 
File Send Email mnuFileSendEmail 
File Send Fax  mnuFileSendFax 
Format Character mnuFormatCharacter 
Help Contents mnuHelpContents 

当使用这种命名约定时,一个特定的菜单组的所有成员一个接一个地列在 Visual Basic 的“属性”窗口中。而且,菜单控件的名字清楚地表示出它们所属的菜单项。

为其它控件选择前缀

对于上面没有列出的控件,应该用唯一的由两个或三个字符组成的前缀使它们标准化,以保持一致性。只有当需要澄清时,才使用多于三个字符的前缀。

常量和变量命名约定
除了对象之外,常量和变量也需要良好格式的命名约定。本节列出了 Visual Basic 支持的常量和变量的推荐约定。并且讨论标识数据类型和范围的问题。

变量应该总是被定义在尽可能小的范围内。全局 (Public) 变量可以导致极其复杂的状态机构,并且使一个应用程序的逻辑非常难于理解。全局变量也使代码的重用和维护更加困难。

Visual Basic 中的变量可以有下列范围

范围 声明位置 可见位置 
过程级 过程,子过程或函数过程中的 ‘Private' 在声明它的过程中 
模块级 窗体或代码模块(.frm、.bas )的声明部分中的 ‘Private' 窗体或代码模块中的每一个过程 
全局 代码模块(.bas)的声明部分中的 ‘Public' 应用程序中的每一处 

在 Visual Basic 的应用程序中,只有当没有其它方便途径在窗体之间共享数据时才使用全局变量。当必须使用全局变量时,在一个单一模块中声明它们,并按功能分组。给这个模块取一个有意义的名称,以指明它的作用,如 Public.bas。

较好的编码习惯是尽可能写模块化的代码。例如,如果应用程序显示一个对话框,就把要完成这一对话任务所需要的所有控件和代码放在单一的窗体中。这有助于将应用程序的代码组织在有用的组件中,并减小它运行时的开销。
12下一页阅读全文


  • 上一条:
    VB XMLHTTP使用方法
    下一条:
    VB编程基础课教程
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客