无法为二元“If”运算符的第一个和第二个操作数推断出通用类型

更新:2007 年 11 月

错误消息

无法为二元“If”运算符的第一个和第二个操作数推断出通用类型。其中一个操作数必须能够扩大转换到另一个操作数的类型。

二元 If 运算符要求在其中一个参数和另一个参数之间存在扩大转换。例如,由于 Integer 与 String 之间不存在任一方向的扩大转换,因此以下代码将导致此错误。

Dim first? As Integer
Dim second As String = "First is Nothing"
'' Not valid.
' Console.WriteLine(If(first, second))

**错误 ID:**BC33110

更正此错误

  • 如果可能,请在代码中对其中一个操作数进行显式转换:

    Console.WriteLine(If(first, CInt(second))) 
    
  • 使用不同的条件结构重写代码。

    If first IsNot Nothing Then
        Console.WriteLine(first)
    Else
        Console.WriteLine(second)
    End If
    

请参见

概念

扩大转换和收缩转换

参考

If 运算符

If...Then...Else 语句 (Visual Basic)