Impossibile dedurre un tipo comune per il secondo e il terzo operando dell'operatore 'If'

Aggiornamento: novembre 2007

Messaggio di errore

Impossibile dedurre un tipo comune per il secondo e il terzo operando dell'operatore 'If'. Uno deve avere una conversione verso un tipo di dati più grande all'altro.
Cannot infer a common type for the second and third operands of the 'If' operator. One must have a widening conversion to the other.

Quando l'operatore If viene chiamato con tre argomenti, deve esservi una conversione verso un tipo di dati più grande tra il secondo e il terzo argomento. Ad esempio, poiché non vi è una conversione verso un tipo di dati più grande in entrambe le direzioni tra Integer e String, il codice seguente causa questo errore.

Dim divisor = 3
' Not valid.
' Console.WriteLine(If(divisor <> 0, number \ divisor, "Division by zero"))

ID errore: BC33106

Per correggere l'errore

  • Fornire una conversione esplicita per uno degli operandi, se ciò è possibile nel codice.

  • Utilizzare una costruzione della condizione diversa, ad esempio un'istruzione If...Then...Else.

Vedere anche

Concetti

Conversioni di ampliamento e restrizione

Riferimenti

Operatore If

Istruzione If...Then...Else (Visual Basic)