当前位置:  开发笔记 > 编程语言 > 正文

以结构化方式命名全局变量

如何解决《以结构化方式命名全局变量》经验,为你挑选了1个好方法。

我当前的项目具有全局常量,用于定义此项目将搜索的工作簿中的某些行和列.我已经将它们定义为:

Public Const headRow As Integer = 1
Public Const descRow As Integer = 2
Public Const pnumCol As Integer = 1
Public Const teamCol As Integer = 2
Public Const dateCol As Integer = 3
Public Const hourCol As Integer = 4
Public Const typeCol As Integer = 5
Public Const taskCol As Integer = 6
Public Const noteCol As Integer = 7

我想知道是否有更清晰的方法来定义这些,这将允许我以这样的方式写这些:

ColumnNums.team
ColumnNums.task
ColumnNums.note     'etc

我认为可以通过定义我自己的类型来完成与此相似的事情,但这可能不值得.我基本上希望这是一个简单的方法来记住变量名称,因为我编写了更多代码,以及能够计算每组中有多少项目.在这种情况下,类型或集合是否有用?



1> 小智..:

对于混合变量类型,您可以将它放在类模块中,命名类模块ColumnNumbers并将以下代码放入:

Public Property Get Team() As Long
    Team = 1
End Property

Public Property Get TeamName() As String
    TeamName = "Team One! :-)"
End Property

然后你可以在任何模块中使用它:

Dim colNums As New ColumnNumbers

Sub foo()
MsgBox colNums.Team
End Sub

如果您只想返回long值,请将其放在枚举中:

Enum ColumnNumbers
    Team = 1
    Description = 2
End Enum

Sub foo()
MsgBox ColumnNumbers.Team
End Sub

芯片皮尔森已经做了描述枚举了出色的工作这里是值得一读,如果你还没有发现它们.


不要忽略类模块选项,它将使您开始面向对象编程,这是一种更好的思考方式.:)
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有