No se puede inferir un tipo común para los operandos primero y segundo del operador 'If' binario

No se puede inferir un tipo común para los operandos primero y segundo del operador 'If' binario. Uno debe tener una conversión de ampliación al otro.

El operador If binario requiere que exista una conversión de ampliación entre uno de los argumentos y el otro. Por ejemplo, como no existe una conversión de ampliación en ninguna dirección entre Integer y String, el código siguiente provoca este error.

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

Identificador de error: BC33110

Para corregir este error

  • Proporcione una conversión explícita para uno de los operandos, si es posible en el código:

    Console.WriteLine(If(first, CInt(second)))
    
  • Vuelva a escribir el código mediante una construcción condicional diferente.

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

Consulte también