Visual Basic的类型推断如何与Equals运算符一起使用

时间:2019-05-23 04:00:56

标签: vb.net type-inference

我正在处理旧版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

0 个答案:

没有答案