2013-04-02 54 views
1

我保持它具有以下代码的项目:如何让VB.NET拒绝自动声明FOR循环变量?

For i = 1 to 9 
    <do stuff> 
Next 

这工作dev的机器上很好,但是当它推到生产服务器,抱怨i是不宣而失败。事实上,这是事实;如果我添加了以下任务:

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

那么无论是生产和开发机器无法运行此,说i是未申报。

什么使开发机器在For循环中允许未声明的i,以及如何禁用此功能?

+0

假设我是一个整数,将for改为For For Integer = 1到9 – dbasnett

回答

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

  • 点击一个项目的解决方案资源管理器
  • 打开项目设计点击查看菜单属性页
  • 编译选项卡,在选项推断框中,单击
+0

我更新了链接以指向页面的英文版。 (+1) – JDB

+0

我的_房产Pages_没有标签,似乎没有_Option Infer_任何地方。它在左边列出了一个列表,其中列出了“参考”,“构建”,“辅助功能”,“开始选项”,“MSBuild选项”,“Silverlight应用程序”。我在'web.config'中找到了'system.codedom'下的选项:'' - 感谢提示! –

+0

您可能已打开解决方案属性页面,而不是项目。 – MarcinJuraszek