我看到了这个帖子:
错别字……请使用严格和明确的选项……在我担任顾问的一个软件开发项目中,他们到处都出现了荒谬的错误……结果开发人员无法拼写并且会声明拼写错误的变量。 . 没什么大不了的,直到您在为它分配值时使用正确的拼写......并且您有明确的选项。哎哟他们……”
到底是Option Strict
什么Option Explicit
?我用谷歌搜索了它,但无法理解(因为主要是 Visual Basic,我正在做 PHP)。
我看到了这个帖子:
错别字……请使用严格和明确的选项……在我担任顾问的一个软件开发项目中,他们到处都出现了荒谬的错误……结果开发人员无法拼写并且会声明拼写错误的变量。 . 没什么大不了的,直到您在为它分配值时使用正确的拼写......并且您有明确的选项。哎哟他们……”
到底是Option Strict
什么Option Explicit
?我用谷歌搜索了它,但无法理解(因为主要是 Visual Basic,我正在做 PHP)。
Option Strict
并Option Explicit
帮助您在设计时捕获潜在和实际错误,而不是在运行时编译和失败代码。你应该切换两者。 On
Option Strict 和 Option Explicit 默认为关闭。要打开它们:
选项严格
Tools -> Options -> Projects and Solutions -> VB defaults -> Option Strict
。将其设置为On
。
选项显式
Tools -> Options -> Editor -> Require Variable Declaration
。勾选它。
使用Option Explicit Off您不必在使用变量之前声明 (Dim) 变量:
a = 123 'a is automatically declared as an Integer
当您在一个地方声明一个变量并认为您稍后会使用它但输入错误时,这会变得很危险:
Dim counter As Integer = 0
'some lines later...
countr = 55 'This creates a new variable called countr
或者更糟糕的是,您将一个值分配给您认为在范围内的变量,但事实并非如此,并且您最终声明了一个具有相同名称但范围不同的新变量。
使用大量代码或长方法时,这些很容易被忽略,因此您应该始终将其打开以防止出现此类问题。
使用Option Strict Off您可以将数据类型隐式转换为缩小类型而不会出现错误:
Dim d As Double = 999.99
Dim s As Single = d 'No error with Option Strict Off
对于这些情况,Option Strict 向开发人员发出警告,以确保双精度值永远不会超过Single.MaxValue
.
您还可以将 Enum 分配给不正确的值而不会出错。下面是一个真实的例子:
变量应该设置为EOpticalCalStates.FAILED
(24),实际上它将 State 设置为 4 的值,相当于EOpticalCalStates.ALI_HOR
.
像这样的东西不容易被发现。
因此,您应该始终默认启用 Option Strict。此设置应该设置为默认设置,但 Microsoft 决定将其关闭以增加向后兼容性(事后看来,这是一个错误 IMO)。
如果您在为新项目设置默认值之前已经启动了一个项目,您将需要使用:
“项目”菜单->“属性...”项->“编译”选项卡->将“选项严格”设置为“开”。
在此处查找详细信息:http: //support.microsoft.com/kb/311329
选项显式语句
默认情况下,Visual Basic .NET 或 Visual Basic 编译器强制执行显式变量声明,这要求您在使用之前声明每个变量。要更改此默认行为,请参阅更改默认项目值部分。
Option Strict 语句
默认情况下,Visual Basic .NET 或 Visual Basic 编译器不强制执行严格的数据类型。要更改此默认行为,请参阅更改默认项目值部分。