数据表 - 后期绑定分辨率;可能发生运行时错误

时间:2015-11-26 00:51:32

标签: vb.net

我的应用程序中有一些代码循环遍历数据表中的行。我收到警告日志“Late Bound resolution;运行时错误可能发生”我想知道是否有人有任何关于如何清除它们的建议。

For Each row In dt.Rows
    RowCount += 1
    If row("SelfRating") IsNot DBNull.Value Then
        If row("SelfRating") > 0 Then
            EmployeeCompletedRows += 1
        End If
    End If
    If row("ManagerRating") IsNot DBNull.Value Then
        If row("ManagerRating") > 0 Then
            ManagerCompletedRows += 1
        End If
    End If
Next

1 个答案:

答案 0 :(得分:0)

将对象分配给声明为Object Data Type的变量是原因。

当您将变量声明为Object时,编译器必须执行后期绑定,这会在运行时导致额外的操作。它还会将您的应用程序暴露给潜在的运行时错误。如果将变量声明为特定类型,则编译器可以在编译时执行早期绑定。这样可以提高性能,控制对特定类型成员的访问,并提高代码的可读性。

此外,默认情况下,此消息应为警告。

没有显示您的变量及其类型,很难说除了你的for循环没有指定 For Each row As DataRow In dt.Rows... 是什么......这可能是问题

试试这个......

Option Strict On

这里我指的是前期的对象类型,它不是后期绑定...

同时将<Dial>变成一位好朋友。