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这样的表达式将生成警告。我同意,但我希望编译器在出现问题时抛出。。。不依赖编译器将对象强制转换为类型。指定类型是一种很好的做法……我并不反对<代码>对于每行…
可能是问题所在<代码>行(“自评级”)
肯定会导致错误,但未提及。