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