vb为什么要用Option Explicit

来源:百度知道 编辑:UC知道 时间:2024/06/04 09:30:21
我知道Option Explicit是强制定义变量。
但你看下以下代码
private sub command1_click()
dim a as string
a="abc"
print a
end sub

我这样子可以运行,在前面加上Option Explicit
如:
Option Explicit
private sub command1_click()
dim a as string
a="abc"
print a
end sub

也可以运行,问题来了,那么为什么要用Option Explicit?
既然这两段没分别,那么我干嘛还要在前面加上Option Explicit?基本Option Explicit能省去。
我如果要声明,我每段都自己声明一下,我加了Option Explicit也是个花瓶,没用。
这样子你们能理解吗?还是我太笨了?

加上Option Explicit
变量在使用之前必须定义

这样的好处就在于可以避免因为输入错误造成的变量错误

比如

Dim sum As Integer
Dim i As Integer

For i = 1 to 10
sun = sun + i
Next i

输入错误 把 sum 输入成了 sun

如果没有Option Explicit
sun 使用时就自动定义了
程序可以正常运行,但结果是不对的

如果有Option Explicit
就会发现 sun 没定义,可以避免这样的错误

Option Explicit 语句

在模块级别中使用,强制显式声明模块中的所有变量。

如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是
Variant 类型的。

使用 Option Explicit
可以避免在键入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。

Option Explicit 语句示例

该示例使用 Option Explicit
语句来强制显式声明所有变量。如果试图使用一个未声明的变量,则会在编译时导致错误。
Option Explicit
语句只能在模块级使用。

Option explicit '强制显式地声明变量。
Dim MyVar '声明变量。
MyInt = 10 '未声明的变量将产生错误。
MyVar = 10 '已声明的变量则不会产生错误。

加了那句就是使用变量前必须要显式声明。不声明就不可以用。你的两段代码都有了显式声明,所以表面上没有区别。

Option Explicit就是一种习惯,不用也行。

Optio