读书频道 > 系统 > 其他综合 > Excel专业开发(第2版)
3.3.2 代码的可读性
2013-01-24 09:11:35     我来说两句 
收藏    我要投稿   

本文所属图书 > Excel专业开发(第2版)

本书基于Excel 2003及之后的版本和VSTO.NET 2008开发平台介绍了Excel专业应用程序开发的各种方法和技术,其内容相对第一版有较大的调整和更新。主要包括Excel各类应用程序的结构和开发方法;Excel应用程序的工...  立即去当当网订购

代码的可读性主要是指代码的物理组织方式。采用合理的格式编写代码,有助于我们认识到大量代码中所包含的逻辑关系,这一点非常重要。代码格式与具体的计算机无关,其目的是帮助人们阅读理解代码。与命名规则一样,采用良好的统一的代码格式可使代码具有很好的自我说明性。代码格式主要是通过在代码中加入空白区域来体现。空白区域主要由空格字符、制表符和空行组成。下面就来讨论通过空白区域构建代码良好格式的方法。

将相关代码元素划分在一起,不相关的代码元素之间用空行分隔。用空行分隔开的程序代码段就如同书中的段落一样,具有相对的独立性,有助于理解代码的逻辑结构。代码清单3-8就是一个采用空行分隔提高代码可读性的例子。即使不使用注释语句,也能很方便地判断出哪些代码是相关的。

代码清单3-8  采用空行划分相关的代码段
' Reset Application properties.
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.StatusBar = False
Application.Caption = Empty
Application.EnableCancelKey = xlInterrupt
Application.Cursor = xlDefault

' Delete all custom CommandBars
For Each cbrBar In Application.CommandBars
     If Not cbrBar.BuiltIn Then
          cbrBar.Delete
     Else
          cbrBar.Enabled = True
     End If
Next cbrBar

' Reset the Worksheet Menu bar.
With Application.CommandBars(1)
     .Reset
     .Enabled = True
     .Visible = True
End With

在同一代码段内,对齐的代码行之间常常是并列关系,而缩进则用于表明代码行之间的逻辑结构关系。代码清单3-9为代码清单3-8中的一部分,其中通过对齐与缩进的方式,使代码具有了较好的可读性。看到这段代码,不仅能立即弄清楚代码执行的逻辑流程,而且还能知道哪些代码元素是可以归为一类的。

代码清单3-9  合理地使用对齐和缩进
' Delete all custom CommandBars
For Each cbrBar In Application.CommandBars
     If Not cbrBar.BuiltIn Then
          cbrBar.Delete
     Else
          cbrBar.Enabled = True
     End If
Next cbrBar

合理使用连接线,可使一些复杂的表达式或较长的声明更具可读性。请记住连接线可将较长的代码行分为几行显示在用户的可视范围内,避免为浏览长代码行而不断拖动滚动条的麻烦,同时也可有效地增强代码行的可读性。代码清单3-10然是一个合理使用连接线的例子。

代码清单3-10  明智的使用连接线
' Complex expressions are easier to understand
' when properly continued
If (uData.lMaxLocationLevel > 1) Or _
     uData.bHasClientSubsets Or _
     (uData.uDemandType = bcDemandTypeCalculate) Then

End If

' Line continuations make long API declarations easier to read.
Declare Function SHGetSpecialFolderPath Lib "Shell32.dll" _
     (ByVal hwndOwner As Long, _
     ByRef szBuffer As String, _
     ByVal lFolder As Long, _
     ByVal bCreate As Long) As Long

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.3.1 代码注释
下一篇:3.3.3 通用的VBA编程惯例
相关文章
图文推荐
2.7.12 使用仿真器查
2.7.11 栈和寄存器组
2.7.8 出栈
2.7.7 压栈
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站