我应该在VB6中明确声明我的变量

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)

这有助于稍后在代码中输入变量名称...如果没有这个,你可以编写变量名称,你的程序编译但不会工作,并且很难去挖掘它.


Jef*_*ffK 9

在工具/选项,编辑器选项卡中,选中要求变量声明复选框.这将自动为每个新代码模块添加Option Explicit.

在此输入图像描述

我想说这不仅仅是一种最佳做法; 我认为这是程序员理智的要求.设置是持久的; 一旦设置,它将保持启用状态.微软让它成为一个选项,因为一些旧版本的VB没有这个功能,这也解释了为什么它默认被禁用.


Sid*_*out 7

我应该在VB6中明确声明我的变量吗?

是.为什么?

不仅因为这是一个好习惯,还是一个必须,但由于我在这篇文章中提到的唯一一个主要原因.

VB将变量默认为Variant类型.Variant类型变量可以包含从字符串,整数,长整数,日期,货币等任何类型的数据.默认情况下,"变量"是"最慢"类型的变量.

正如我之前提到的,如果你没有指定变量的类型,VB默认变量为Variant类型.并且你不会想要它,因为它会减慢你的代码,因为VB编译器需要时间来决定你正在使用什么类型的变量.还应避免使用变体,因为它们可能导致"类型不匹配错误".

主题:'Err'是人类(参见第3点)

链接:http://siddharthrout.wordpress.com/2011/08/01/to-err-is-human/

上述链接还包括与编码相关的其他部分,可以/应该注意.

HTH