VB.NET:错误BC30389:'i'在这种情况下无法访问,因为它是'朋友'

时间:2015-08-06 14:33:50

标签: asp.net vb.net compilation

我维护一个面向.NET 3.5的ASP.NET / VB.NET网站。我过去常常没有问题。突然之间,我开始出现构建错误:

错误BC30389:在此上下文中无法访问“我”,因为它是“朋友”

为每个单字母的循环控制变量。例如:

For i = 0 To oDataTable.Columns.Count - 1
strHtml += "<td style='border : 1px solid black; font-size :13pt;'>" +         oDataTable.Columns(i).ColumnName + "</td>"
Next

如果我将var名称从'i'更改为'ii'它会消失,但这不是一个选项,因为我们在此站点的一百万个地方使用了类似循环控制变量。我以前从未见过这种类型的错误。

以下是我的编译器设置:

<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>

我的工作站上唯一新的东西就是我安装了.NET 4.5.2。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为For Each是循环通过大小未知的集合的更好的方法。因此,您可以使用For Each作为此

来遍历LoadLibraryW
Datacolumns

在这里,我建议您使用 Dim strHtml As new StringBuilder() For Each dc As DataColumn In oDataTable.Columns strHtml.Append("<td style='border : 1px solid black; font-size :13pt;'>" + dc.ColumnName + "</td>") Next 代替字符串。因为它消耗的内存量较少。