我正在处理旧版Visual Basic(VB.NET)项目,并启用了Option Strict,由于隐式转换,该选项会产生很多错误。
我试图通过对程序进行最小的更改来消除这些错误,即显式转换为VB隐式转换的相同类型。
错误之一是:
BC30512 Option Strict On不允许从'String'到'Double'的隐式转换。
代码行是一个If语句,使用Equals运算符检查是否相等。左操作数是Long,而右操作数是字符串。
最终要“修复”此示例,一个将显式地将其中一个操作数转换为与另一操作数相同的类型,但是哪种操作数和哪种类型最匹配VB在Option Strict Off下执行的操作?
基于该错误,似乎是正确的操作数。 通常,VB如何计算出要进行类型转换的操作数?
为什么要尝试将字符串转换为Double而不是Long来匹配左操作数?左操作数是否从Long隐式转换为Double?
Dim l As Long = 123
Dim s As String = "123"
If l = s Then
' Do Something
Else
' Do the other thing
End If