Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 数据表-后期绑定分辨率;可能发生运行时错误_Vb.net - Fatal编程技术网

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

Vb.net 数据表-后期绑定分辨率;可能发生运行时错误,vb.net,Vb.net,我的应用程序中有一些代码可以循环数据表中的行。我收到一个警告日志“延迟绑定解析;可能发生运行时错误”。我想知道是否有人对如何清除它们有任何建议 For Each row In dt.Rows RowCount += 1 If row("SelfRating") IsNot DBNull.Value Then If row("SelfRating") > 0 Then EmployeeCompletedRows += 1

我的应用程序中有一些代码可以循环数据表中的行。我收到一个警告日志“延迟绑定解析;可能发生运行时错误”。我想知道是否有人对如何清除它们有任何建议

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

将对象分配给声明为对象数据类型的变量是原因

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

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

没有显示变量及其类型,很难说除了for循环没有指定
行是什么。。。这可能就是问题所在

试试这个

 For Each row As DataRow In dt.Rows...
在这里,我预先指定的对象类型不是后期绑定


另外,将
选项严格打开
这是一个很好的朋友。

一个对象被分配给一个声明为对象数据类型的变量是原因

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

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

没有显示变量及其类型,很难说除了for循环没有指定
行是什么。。。这可能就是问题所在

试试这个

 For Each row As DataRow In dt.Rows...
在这里,我预先指定的对象类型不是后期绑定


另外,打开
选项Strict,这是一个很好的朋友。

使用
选项推断,行迭代器将转换为
DataRow
<代码>行(“自评”)
但是始终是
对象
,因此像
行(“自评”)>0这样的表达式将生成警告。我同意,但我希望编译器在出现问题时抛出。。。不依赖编译器将对象强制转换为类型。指定类型是一种很好的做法……我并不反对<代码>对于每行…
可能是问题所在<代码>行(“自评级”)
肯定会导致错误,但未提及。如果启用
选项推断
,行迭代器将转换为
DataRow
<代码>行(“自评”)
但是始终是
对象
,因此像
行(“自评”)>0这样的表达式将生成警告。我同意,但我希望编译器在出现问题时抛出。。。不依赖编译器将对象强制转换为类型。指定类型是一种很好的做法……我并不反对<代码>对于每行…
可能是问题所在<代码>行(“自评级”)
肯定会导致错误,但未提及。