JMK*_*JMK 5 vb6 standards vba coding-style
我在Visual Basic 6中编写了一些代码,我注意到我甚至不需要声明变量来实现.
以下(明确声明):
Dim foo As String
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)
似乎与此一样工作(隐式声明):
Dim foo
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)
或者这个(没有声明):
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)
我知道在C#中我需要在使用它之前声明一个变量,并且隐式和显式声明都是可以接受的.我也知道在Python中,在使用它们之前根本不会声明变量.
关于Visual Basic 6(以及扩展VBA)哪个适当?
谢谢
小智 9
这是一个很好的习惯.
有一个名为Option Explicit的VB选项.将此设置为ON,然后VB强制您在使用之前声明变量:不再
foo = "Bar"
Run Code Online (Sandbox Code Playgroud)
这有助于稍后在代码中输入变量名称...如果没有这个,你可以编写变量名称,你的程序编译但不会工作,并且很难去挖掘它.
在工具/选项,编辑器选项卡中,选中要求变量声明复选框.这将自动为每个新代码模块添加Option Explicit.

我想说这不仅仅是一种最佳做法; 我认为这是程序员理智的要求.设置是持久的; 一旦设置,它将保持启用状态.微软让它成为一个选项,因为一些旧版本的VB没有这个功能,这也解释了为什么它默认被禁用.
我应该在VB6中明确声明我的变量吗?
是.为什么?
不仅因为这是一个好习惯,还是一个必须,但由于我在这篇文章中提到的唯一一个主要原因.
VB将变量默认为Variant类型.Variant类型变量可以包含从字符串,整数,长整数,日期,货币等任何类型的数据.默认情况下,"变量"是"最慢"类型的变量.
和
正如我之前提到的,如果你没有指定变量的类型,VB默认变量为Variant类型.并且你不会想要它,因为它会减慢你的代码,因为VB编译器需要时间来决定你正在使用什么类型的变量.还应避免使用变体,因为它们可能导致"类型不匹配错误".
主题:'Err'是人类(参见第3点)
链接:http://siddharthrout.wordpress.com/2011/08/01/to-err-is-human/
上述链接还包括与编码相关的其他部分,可以/应该注意.
HTH