Partager via


Impossible de déduire un type commun pour le premier et le deuxième opérande de l'opérateur binaire 'If'

Mise à jour : novembre 2007

Message d'erreur

Impossible de déduire un type commun pour les premier et deuxième opérandes de l'opérateur binaire 'If'. L'un des deux doit avoir une conversion étendue à l'autre.
Cannot infer a common type for the first and second operands of the binary 'If' operator. One must have a widening conversion to the other.

L'opérateur If binaire requiert une conversion étendue entre l'un des arguments et l'autre argument. Par exemple, étant donné qu'il n'existe pas de conversion étendue dans l'une ou l'autre direction entre Integer et String, le code suivant provoque cette erreur.

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

ID d'erreur : BC33110

Pour corriger cette erreur

  • Fournissez une conversion explicite pour l'un des opérandes si cela est possible dans votre code :

    Console.WriteLine(If(first, CInt(second))) 
    
  • Réécrivez le code à l'aide d'une construction conditionnelle différente.

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

Voir aussi

Concepts

Conversions étendues et restrictives

Référence

If, opérateur

If...Then...Else, instruction (Visual Basic)