Partager via


If, opérateur (Visual Basic)

Utilise l’évaluation de court-circuit pour retourner conditionnellement l’une des deux valeurs. L’opérateur If peut être appelé avec trois arguments ou deux arguments.

Syntaxe

If( [argument1,] argument2, argument3 )

Si l’opérateur appelé avec trois arguments

Lorsqu’il If est appelé à l’aide de trois arguments, le premier argument doit être évalué sur une valeur pouvant être castée en tant que Boolean. Cette Boolean valeur détermine lequel des deux autres arguments est évalué et retourné. La liste suivante s’applique uniquement lorsque l’opérateur If est appelé à l’aide de trois arguments.

Pièces

Terme Définition
argument1 Obligatoire. Boolean. Détermine les autres arguments à évaluer et à retourner.
argument2 Obligatoire. Object. Évalué et retourné s’il argument1 est évalué à True.
argument3 Obligatoire. Object. Évalué et retourné s’il argument1 est évalué False ou s’il s’agit argument1 d’une variable NullableBoolean qui prend la valeur Nothing.

Un If opérateur appelé avec trois arguments fonctionne comme une IIf fonction, sauf qu’il utilise l’évaluation de court-circuit. Une IIf fonction évalue toujours les trois de ses arguments, tandis qu’un If opérateur qui a trois arguments n’évalue que deux d’entre eux. Le premier If argument est évalué et le résultat est casté en tant que Boolean valeur, True ou False. Si la valeur est True, argument2 est évaluée et sa valeur est retournée, mais argument3 n’est pas évaluée. Si la valeur de l’expression Boolean est False, argument3 est évaluée et sa valeur est retournée, mais argument2 n’est pas évaluée. Les exemples suivants illustrent l’utilisation de If trois arguments :

' This statement prints TruePart, because the first argument is true.
Console.WriteLine(If(True, "TruePart", "FalsePart"))

' This statement prints FalsePart, because the first argument is false.
Console.WriteLine(If(False, "TruePart", "FalsePart"))

Dim number = 3
' With number set to 3, this statement prints Positive.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

number = -1
' With number set to -1, this statement prints Negative.
Console.WriteLine(If(number >= 0, "Positive", "Negative"))

L’exemple suivant illustre la valeur de l’évaluation de court-circuit. L’exemple montre deux tentatives de division de variable number par variable divisor , sauf si elle divisor est égale à zéro. Dans ce cas, un 0 doit être retourné et aucune tentative ne doit être effectuée pour effectuer la division, car une erreur d’exécution entraîne une erreur d’exécution. Étant donné que l’expression If utilise l’évaluation de court-circuit, elle évalue le deuxième ou le troisième argument, en fonction de la valeur du premier argument. Si le premier argument est vrai, le diviseur n’est pas égal à zéro et il est sûr d’évaluer le deuxième argument et d’effectuer la division. Si le premier argument est false, seul le troisième argument est évalué et un 0 est retourné. Par conséquent, lorsque le diviseur est 0, aucune tentative n’est effectuée pour effectuer la division et aucun résultat d’erreur. Toutefois, étant donné qu’il IIf n’utilise pas l’évaluation de court-circuit, le deuxième argument est évalué même lorsque le premier argument a la valeur false. Cela provoque une erreur de division par zéro au moment de l’exécution.

number = 12

' When the divisor is not 0, both If and IIf return 4.
Dim divisor = 3
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

' When the divisor is 0, IIf causes a run-time error, but If does not.
divisor = 0
Console.WriteLine(If(divisor <> 0, number \ divisor, 0))
' Console.WriteLine(IIf(divisor <> 0, number \ divisor, 0))

Si l’opérateur appelé avec deux arguments

Premier argument à If omettre. Cela permet à l’opérateur d’être appelé à l’aide de deux arguments uniquement. La liste suivante s’applique uniquement lorsque l’opérateur If est appelé avec deux arguments.

Pièces

Terme Définition
argument2 Obligatoire. Object. Doit être un type de valeur de référence ou nullable. Évalué et retourné lorsqu’il est évalué à quelque chose d’autre que Nothing.
argument3 Obligatoire. Object. Évalué et retourné s’il argument2 est évalué à Nothing.

Lorsque l’argument Boolean est omis, le premier argument doit être une référence ou un type valeur nullable. Si le premier argument prend Nothingla valeur , la valeur du deuxième argument est retournée. Dans tous les autres cas, la valeur du premier argument est retournée. L’exemple suivant illustre le fonctionnement de cette évaluation :

' Variable first is a nullable type.
Dim first? As Integer = 3
Dim second As Integer = 6

' Variable first <> Nothing, so its value, 3, is returned.
Console.WriteLine(If(first, second))

second = Nothing
' Variable first <> Nothing, so the value of first is returned again.
Console.WriteLine(If(first, second))

first = Nothing
second = 6
' Variable first = Nothing, so 6 is returned.
Console.WriteLine(If(first, second))

Voir aussi