我正在维护一个具有以下代码的项目:
For i = 1 to 9
<do stuff>
Next
这在开发机器上工作正常,但当它被推送到生产服务器时失败,抱怨i
未声明。事实上,这是真的;如果我添加以下作业:
i = 5
For i = 1 to 9
<do stuff>
Next
然后生产机器和开发机器都无法运行它,说这i
是未声明的。
是什么让开发机器允许i
在For
循环中未声明,我该如何禁用它?
我正在维护一个具有以下代码的项目:
For i = 1 to 9
<do stuff>
Next
这在开发机器上工作正常,但当它被推送到生产服务器时失败,抱怨i
未声明。事实上,这是真的;如果我添加以下作业:
i = 5
For i = 1 to 9
<do stuff>
Next
然后生产机器和开发机器都无法运行它,说这i
是未声明的。
是什么让开发机器允许i
在For
循环中未声明,我该如何禁用它?
这是一个称为本地类型推断的功能。有了它,您可以在不指定类型的情况下声明变量:
' Variable num is an Integer.
Dim num = 5
' Variable dbl is a Double.
Dim dbl = 4.113
' Variable str is a String.
Dim str = "abc"
' Variable pList is an array of Process objects.
Dim pList = Process.GetProcesses()
' Variable i is an Integer.
For i = 1 To 10
Console.WriteLine(i)
Next
您可以使用Option Infer Off
语句作为文件中的第一行或整个项目禁用它: