Partilhar via


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

Mensagem de erro

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

O binário If operador requer que lá seja uma conversação entre um dos argumentos e o Outros argumento. Por exemplo, devido ao fato de que não há uma conversão de alargamento em ambas as direções entre Integer e String, o seguinte código causa este 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

  • Fornecer 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 por meio de uma construção condicional diferente.

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

Consulte também

Conceitos

Conversões Ampliadoras e Redutoras

Referência

Se operador

Declaração If...Then... (Visual Basic)