Option Strict On禁止后期绑定

mik*_*ike 11 vb.net visual-studio-2010 strcmp

有人可以帮我解决这个错误吗?

Option Strict On禁止后期绑定

这是导致错误的代码:

Dim SF6StdData As BindingSource = New BindingSource() 
' ...
If StrComp(SF6StdData.Current("O2AreaCts").ToString, "") = 0 Then
    AreaCts(3) = 0
Else
    AreaCts(3) = Convert.ToDouble(SF6StdData.Current("O2AreaCts").ToString)
End If
Run Code Online (Sandbox Code Playgroud)

我需要重写代码,这样就不会有任何错误.我知道我可以通过在项目属性中将Option Strict设置为Off来解决这个问题,但我真的不想这样做.还有其他方法吗?

Ste*_*art 12

Option Strict打开时不允许延迟绑定.如果需要执行后期绑定,则唯一的选择是使用反射或关闭Option Strict.然而,唯一的优点是你不必Option Strict为整个项目关闭.您可以将其保留为项目,然后只需Option Strict Off在需要执行后期绑定的任何代码文件的顶部添加该行.这不是一个很好的解决方案,但它比影响整个项目更好.

此外,由于Option Strict放置在文件顶部仅适用于该文件,因此它甚至不必应用于整个类.如果将类拆分为多个Partial Class文件,则可Option Strict以为每个文件设置不同的文件.例如,如果你把你的大部分类放在一个文件中Options Strict On,然后只将一个方法Partial Class放在一个单独的文件中Option Strict Off,那么只有那个方法会被松散地编译.该类的其余部分将使用严格的规则进行编译.

  • 更好的解决方案是将您的课程分为晚期绑定和早期绑定部分.然后你可以创建两个*partial*类,只使用Option Strict Off作为Late Bound部分. (3认同)