当我构建vb.net时,它显示0个错误,但当我执行它时,它会引发此错误

当我构建vb.net时,它显示0个错误,但当我执行它时,它会引发此错误,vb.net,Vb.net,不会推断变量“cri”的类型,因为它绑定到封闭范围中的字段。更改“cri”的名称,或者使用完全限定的名称(例如,“Me.cri”或“MyBase.cri”) 我已经创建了一个名为预定义的类文件,它由cricket、BasketBall等方法组成,这些方法来自于返回字符串类型列表的方法 我在按钮点击事件中调用该类,就像类的对象是pre 现在我调用一个名为pre.Cricket()的方法; 因此,当我执行带有警告的程序时,它会引发以下错误: 'Cricket' is not a member of

不会推断变量“cri”的类型,因为它绑定到封闭范围中的字段。更改“cri”的名称,或者使用完全限定的名称(例如,“Me.cri”或“MyBase.cri”)

我已经创建了一个名为预定义的类文件,它由cricket、BasketBall等方法组成,这些方法来自于返回字符串类型列表的方法

我在按钮点击事件中调用该类,就像类的对象是pre 现在我调用一个名为pre.Cricket()的方法; 因此,当我执行带有警告的程序时,它会引发以下错误:

'Cricket' is not a member of 'predefined'.
这是第2行显示错误的代码:

Dim cric As New List(Of String)()
cric = pre.Cricket()
For cri As Integer = 0 To cric.Count - 1
请参阅此msdn文章:

(从上面)

代码中的循环控制变量 与的字段同名 类或其他封闭范围。 因为使用了控制变量 如果没有As条款,则它必须 封闭范围中的字段,以及 编译器不会创建新的 变量或推断其类型

在下面的示例中,索引 For语句中的控制变量, 绑定到中的索引字段 客户类。编译器没有 为控件创建一个新变量 变量索引或推断其类型


请给我们看一些代码。另外,您是否尝试在抛出错误的直线上放置断点?你有堆栈跟踪吗?需要更多的信息。
Class Customer

    ' The class has a field named Index.
    Private Index As Integer

    Sub Main()

    ' The following line will raise this warning.
        For Index = 1 To 10
            ' ...
        Next

    End Sub
End Class