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

时间:2010-06-29 05:25:16

标签: vb.net

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

我创建了一个名为Predefined的类文件,它包含了像cricket这样的方法,来自这个方法的BasketBall返回字符串类型的列表

我在按钮点击事件中调用该类,就像类的对象一样 现在我调用一个名为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

1 个答案:

答案 0 :(得分:2)

请参阅此msdn文章:

http://msdn.microsoft.com/en-us/library/bb385162.aspx

(从上面)

  

代码中的循环控制变量   与该字段的名称相同   类或其他封闭范围。   因为使用了控制变量   没有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