Partager via


Le premier opérande d'une expression binaire 'If' doit être de type nullable ou référence

Mise à jour : novembre 2007

First operand in a binary 'If' expression must be nullable or a reference type

Une expression If peut accepter soit deux soit trois arguments. Lorsque vous envoyez uniquement deux arguments, le premier argument doit être un type référence ou un type nullable. Si le premier argument est évalué à une valeur autre que Nothing, sa valeur est retournée. Si le premier argument est évalué à la valeur Nothing, la valeur du deuxième argument est évaluée et retournée.

Par exemple, le code suivant contient deux expressions If, l'une avec trois arguments et l'autre avec deux arguments. Les expressions sont calculées et retournent la même valeur.

' firstChoice is a nullable value type.
Dim firstChoice? As Integer = Nothing
Dim secondChoice As Integer = 1128
' If expression with three arguments.
Console.WriteLine(If(firstChoice IsNot Nothing, firstChoice, secondChoice))
' If expression with two arguments.
Console.WriteLine(If(firstChoice, secondChoice))

Les expressions suivantes provoquent cette erreur :

Dim choice1 = 4
Dim choice2 = 5
Dim booleanVar = True

' Not valid.
'Console.WriteLine(If(choice1 < choice2, 1))
' Not valid.
'Console.WriteLine(If(booleanVar, "Test returns True."))

ID d'erreur : BC33107

Pour corriger cette erreur

  • Si vous ne pouvez pas modifier le code afin que le premier argument soit un type nullable ou un type référence, envisagez la conversion en une expression If à trois arguments, ou en une instruction If...Then...Else.

    Console.WriteLine(If(choice1 < choice2, 1, 2))
    Console.WriteLine(If(booleanVar, "Test returns True.", "Test returns False."))
    

Voir aussi

Concepts

Types valeur nullables

Référence

If, opérateur

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