Leggere in inglese

Condividi tramite


Non è possibile dedurre un tipo comune per il primo e il secondo operando dell'operatore 'If'

Non è possibile dedurre un tipo comune per il primo e il secondo operando dell'operatore 'If'. Uno deve avere una conversione Widening nell'altro.

L'operatore binario If richiede che ci sia una conversione verso un tipo di dati più grande tra uno degli argomenti e l'altro. Ad esempio, poiché non è disponibile una conversione verso un tipo di dati più grande in entrambe le direzioni tra Integer e String, il codice seguente genera questo errore.

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

ID errore: BC33110

Per correggere l'errore

  • Fornire una conversione esplicita per uno degli operandi, se possibile nel codice:

    VB
    Console.WriteLine(If(first, CInt(second)))
    
  • Riscrivere il codice usando una diversa costruzione condizionale.

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

Vedi anche