Não é possível inferir um tipo comum para o primeiro e segundo operandos do operador binário 'If'

Não é possível inferir um tipo comum para o primeiro e segundo operandos do operador binário 'If'. Um deve ter uma conversão crescente para o outro.

O operador binário If requer que haja uma conversão alargada entre um dos argumentos e o outro argumento. Por exemplo, como não há uma conversão de ampliação em qualquer direção entre Integer e String, o código a seguir causa esse erro.

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

ID de erro: BC33110

Para corrigir este erro

  • Forneça uma conversão explícita para um dos operandos, se isso for possível em seu código:

    Console.WriteLine(If(first, CInt(second)))
    
  • Reescreva o código usando uma construção condicional diferente.

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

Consulte também