1

我正在维护一个具有以下代码的项目:

For i = 1 to 9
    <do stuff>
Next

这在开发机器上工作正常,但当它被推送到生产服务器时失败,抱怨i未声明。事实上,这是真的;如果我添加以下作业:

i = 5
For i = 1 to 9
    <do stuff>
Next

然后生产机器和开发机器都无法运行它,说这i是未声明的。

是什么让开发机器允许iFor循环中未声明,我该如何禁用它?

4

1 回答 1

4

这是一个称为本地类型推断的功能。有了它,您可以在不指定类型的情况下声明变量:

' 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语句作为文件中的第一行或整个项目禁用它:

  • 单击解决方案资源管理器中的项目。
  • 通过单击视图菜单上的属性页打开项目设计器。
  • 编译选项卡的选项推断框中,单击关闭
于 2013-04-02T20:30:02.967 回答