选项是否严格'依赖于选项推断'检测未声明的变量?

时间:2014-10-02 19:38:28

标签: vb.net option-strict option-infer

以下是我从这段简单的代码中得到的独特结果。

假设您要创建string类型的变量,而不将其声明为字符串。您可以执行此操作并从编译器中获取错误:

Option Strict On

' Produces no errors:
Dim MyString = "Random String"

您也可以这样做而不会出现任何错误:

Option Infer Off
' Produce no errors as well.
Dim MyString = "Random String"

但是,如果同时将选项字符串打开选项推断关闭,则会出现错误:

Option Strict On
Option Infer Off

' The following line generates an error -
' Option Strict On requires all variable declarations to have an "As" clause
Dim MyString = "Random String"

为什么 Option Strict 需要与 Option Infer 结合使用?特别是当错误明确表示以下错误是" Option Strict"类型。为什么 Option Strict 单独将该行视为错误?

1 个答案:

答案 0 :(得分:1)

您忽略了项目级选项设置 - 这些将确定错误/警告,除非在文件级别覆盖。查看项目属性的编译选项卡。

您的项目级选项推断可能设置为“开启”,因此您的第一个示例实际上与包含“选项推断”相同。