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

当前位置:

首页 > 编程开发 > 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。

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

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    下一篇: VB XMLHTTP使用方法
    相关文章 更多
    精品专题 更多
    装机必备

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

    Windows

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

    PDF教程

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

    macOS软件

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

    IOS软件

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

    AI

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

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw macOS版
    AionClaw macOS版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy macOS版
    Loomy macOS版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。

    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。

    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    Maya(Autodesk Maya) Windows版
    Maya(Autodesk Maya) Windows版

    Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

    Aperty Windows版
    Aperty Windows版

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    立刻MV 网页版
    立刻MV 网页版

    立刻MV 面向音乐人、内容创作者和品牌团队,帮助用户低成本完成歌曲 MV、歌词视频、AI 分镜、图生视频与最终合成。

    蛙蛙写作 网页版
    蛙蛙写作 网页版

    蛙蛙写作 AI 创作工具,覆盖小说、剧本、文案,一键生成文稿,打通文字转视频全流程,高效解决创作难题。

    超级简历WonderCV 网页版
    超级简历WonderCV 网页版

    超级简历WonderCV是面向应届生和AI小白的智能求职平台,覆盖简历、面试与职业规划。

    音述AI 网页版
    音述AI 网页版

    音述AI,是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区。

    AionClaw Windows版
    AionClaw Windows版

    AionClaw 是可在桌面端运行的任务型 AI 助手,通过数字专家与技能市场组合办公、创作、数据和开发能力。

    Loomy Windows版
    Loomy Windows版

    Loomy 是科大讯飞推出的桌面 AI 助手,可通过对话、任务与工作目录协助处理办公、内容创作和资料整理。