展开菜单
首页 精品内容 本月促销 装机必备 Windows macOS软件 IOS软件 Android AI PDF教程 专题
全部分类

当前位置:

首页 > 编程开发 > VB编程的八个优良习惯第1/2页

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

使用“&”替代“+”进行字符串拼接可避免类型歧义;变量命名应遵循语义化原则并注意大小写与缩进;控件和对象采用统一前缀命名,如cmd、txt等;变量应定义在最小作用域内,避免滥用全局变量,并提倡模块化代码组织。这些习惯能显著提升代码的可读性与维护性。

在VB的世界里摸爬滚打久了,你会发现很多所谓的“技巧”,其实最后都沉淀为一些最基本、最不起眼的习惯。这些习惯看似简单,却直接决定了代码的可读性、维护性,甚至是你自己的编码效率。今天,我们就来聊聊八个值得养成的VB编程习惯。

先列出几个核心判断:用对连接符、规范命名、善用内置函数、以及结构化的代码组织——这些都不是什么高深莫测的学问,但真正做到位了,写的代码会让人感觉判若两人。

1. “&”替换“+”

很多开发者习惯用“+”来拼接字符串,这其实是个不小的隐患。问题在于,“+”在VB中同时承担着算术加法和字符串连接的双重角色,容易引发类型歧义和运行时错误。真正的好习惯是什么?用“&”。理由很简单:专职专用。“&”就是为字符串连接而生的操作符,它会让你的意图更加明确。

不推荐:

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

差别在哪里?核心有两处:一是变量命名遵循了语义化原则(sName、nTurn),一看就知道是什么;二是代码缩进层次清晰,逻辑嵌套一目了然。这样的代码,几个月后你自己回头看,也不会觉得陌生。

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(例:lwfraSa veOptions)
  • 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的“属性”窗口中,同一菜单组的所有成员会整齐地排列在一起,一目了然。

常量和变量命名约定:

变量应该始终被定义在尽可能小的范围内。全局变量容易导致状态复杂,逻辑混乱,也让代码的重用和维护变得更加困难。在VB中,变量可以有以下范围:

  • 过程级:在过程、子过程或函数过程中用‘Private’声明,只在声明它的过程中可见。
  • 模块级:在窗体或代码模块的声明部分用‘Private’声明,在模块内的每一个过程中可见。
  • 全局:在代码模块的声明部分用‘Public’声明,在整个应用程序中可见。

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

还有一个好习惯:尽可能写模块化的代码。比如,如果应用程序需要显示一个对话框,就把完成这一任务所需的所有控件和代码放在单一的窗体中。这样有助于将代码组织成有用的组件,同时减小运行时的开销。

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
编程开发
相关文章 更多
精品专题 更多
本月促销

正软商城本月促销专区,汇集办公、设计、安全、影音、系统工具及AI软件等正版软件优惠活动,提供限时折扣、特价授权和优惠购买信息,活动库存及价格以页面实时展示为准。

装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

IOS软件

正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

AI

正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
灵活计算器
灵活计算器

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

图几
图几

图几是一款适用于 macOS 的截图、标注与美化工具,支持离线操作保障隐私。界面整理和高频系统操作被放到一起考虑,桌面或窗口内容一多时,管理起来会更省心。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Menuist
Menuist

Menuist 是一款面向 macOS 的 Finder 右键菜单增强工具,主要用来补充新建文件、快捷导航等常用操作,让日常文件管理和访问路径时更高效、更顺手。

Mole
Mole

Mole 是一款专为 Mac 设计的深度清理优化工具,涵盖缓存清理、应用管理及实时状态监控等功能。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

WINDOWS 更多
Windows 10
Windows 10

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

思源笔记
思源笔记

思源笔记是一款本地笔记软件,提供所见即所得的编辑方式,为长文写作带来顺滑的体验。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

傲梅轻松备份
傲梅轻松备份

傲梅轻松备份是一款专业易用的数据备份软件,为重要数据提供安全保障。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。

Office 365 简体中文
Office 365 简体中文

一款文字处理软件,一种订阅式的跨平台办公软件,基于云平台提供多种服务,通过将 Excel 和 Outlook 等应用与 OneDrive 和 Microsoft Teams 等强大的云服务相结合,Office 365 可让任何人使用任何设备随时随地创建和共享内容。

Wise Folder Hider Pro
Wise Folder Hider Pro

Wise Folder Hider Pro 是一款专业级文件和文件夹隐藏加密软件,为私密数据添加多重保护。高频操作更强调就近处理,浏览、整理和跨目录移动文件时,来回切换和重复点击都会少很多。

WALTR PRO
WALTR PRO

WALTR是一款电脑至iOS文件传输转换工具,操作简单,快速实现文件识别与传送。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

CodeExpander
CodeExpander

CodeExpander 是一款快捷短语输入增强工具,通过键入缩写自动展开为自定义文段,提升工作效率。任务管理和过程控制会更完整,持续下载、批量同步或需要稳定传输流程的场景会更适合它。

PinStack
PinStack

PinStack是一款轻量级的Windows平台剪贴板管理工具,优化您的剪贴板使用体验。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

Mountain Duck
Mountain Duck

Mountain Duck 是一款能将多个网盘挂载到本地的工具,像本地磁盘一样使用网盘。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。

Seer
Seer

Seer是一款在Win平台下的空格键功能增强效率工具,只需轻敲空格键,就能预览几乎任何格式的文件。它更适合把零散的小功能集中起来使用,处理高频琐碎任务时会更省事。