为何使用它

Option Strict On 防止发生三件事:

1.隐式缩小转换错误

它可以防止你在没有显式强制转换的情况下分配给精度较低或容量较小的变量 (缩小转换)。这样做会导致数据丢失。

Dim d As Double = 123.4
Dim s As Single = d 'This line does not compile with Option Strict On

2.晚期绑定呼叫

不允许延迟绑定。这是为了防止编译错误,但在运行时失败

Dim obj As New Object
obj.Foo 'This line does not compile with Option Strict On

3.隐式对象类型错误

这可以防止变量被推断为 Object,实际上它们应该被声明为一个类型

Dim something = Nothing. 'This line does not compile with Option Strict On

结论

除非你需要进行后期绑定,否则应始终使用 Option Strict On,因为它会导致上述错误生成编译时错误而不是运行时异常。

如果你必须做晚期绑定,你也可以

  • 将所有后期绑定调用包装到一个类/模块中,并在代码文件的顶部使用 Option Strict Off(这是首选方法,因为它可以降低其他文件中拼写错误的可能性),或者
  • 指定 Late Binding 不会导致编译失败(Project Properties > Compile Tab > Warning Configuration