If-Operator (Visual Basic)

Verwendet die Kurzschluss Auswertung, um einen von zwei Werten bedingt zurückzugeben. Der If Operator kann mit drei Argumenten oder mit zwei Argumenten aufgerufen werden.

Syntax

If( [argument1,] argument2, argument3 )

If-Operator mit drei Argumenten aufgerufen

Wenn If mithilfe von drei Argumenten aufgerufen wird, muss das erste Argument zu einem Wert ausgewertet werden, der als umgewandelt werden kann Boolean . Dieser Boolean Wert bestimmt, welche der beiden anderen Argumente ausgewertet und zurückgegeben werden. Die folgende Liste gilt nur, wenn der- If Operator mit drei Argumenten aufgerufen wird.

Bestandteile

Begriff Definition
argument1 Erforderlich. Boolean. Bestimmt, welches der anderen Argumente ausgewertet und zurückgegeben werden soll.
argument2 Erforderlich. Object. Wird ausgewertet und zurückgegeben, wenn zu ausgewertet wird argument1 True .
argument3 Erforderlich. Object. Wird ausgewertet und zurückgegeben, wenn argument1 False als ausgewertet wird oder wenn argument1 eine Variable ist Boolean , die NULL-Werte zulässt

Ein If Operator, der mit drei Argumenten aufgerufen wird, funktioniert wie eine IIf Funktion, mit der Ausnahme, dass er eine Kurzschluss Auswertung verwendet. Eine IIf Funktion wertet immer alle drei ihrer Argumente aus, wohingegen ein If Operator mit drei Argumenten nur zwei davon auswertet. Das erste If Argument wird ausgewertet, und das Ergebnis wird in einen- Boolean Wert True umgewandelt False . Wenn der Wert ist True , argument2 wird ausgewertet und sein Wert zurückgegeben, aber argument3 nicht ausgewertet. Wenn der Wert des Boolean Ausdrucks ist False , argument3 wird ausgewertet und sein Wert zurückgegeben, aber argument2 nicht ausgewertet. In den folgenden Beispielen wird die Verwendung von veranschaulicht, If Wenn drei Argumente verwendet werden:

' 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"))

Im folgenden Beispiel wird der Wert der Kurzschluss Auswertung veranschaulicht. Das Beispiel zeigt zwei Versuche, Variablen durch Variable zu unterteilen, number divisor außer wenn divisor 0 (null) ist. In diesem Fall sollte 0 (null) zurückgegeben werden, und es sollte nicht versucht werden, die Division auszuführen, da ein Laufzeitfehler entstehen würde. Da der If Ausdruck eine Kurzschluss Auswertung verwendet, wertet er je nach dem Wert des ersten Arguments entweder das zweite oder das dritte Argument aus. Wenn das erste Argument true ist, ist der Divisor nicht NULL, und es ist sicher, das zweite Argument auszuwerten und die Division auszuführen. Wenn das erste Argument false ist, wird nur das dritte Argument ausgewertet, und es wird 0 zurückgegeben. Wenn der Divisor also 0 ist, wird nicht versucht, die Division und keine Fehler Ergebnisse auszuführen. Da jedoch IIf keine Kurzschluss Auswertung verwendet, wird das zweite Argument auch dann ausgewertet, wenn das erste Argument false ist. Dies führt zu einem Laufzeitfehler aufgrund einer Division durch 0 (null).

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))

If-Operator mit zwei Argumenten aufgerufen

Das erste Argument für If kann weggelassen werden. Dadurch kann der Operator nur mit zwei Argumenten aufgerufen werden. Die folgende Liste gilt nur, wenn der- If Operator mit zwei Argumenten aufgerufen wird.

Bestandteile

Begriff Definition
argument2 Erforderlich. Object. Muss ein Verweis oder ein Werte zulässt-Werttyp sein. Wird ausgewertet und zurückgegeben, wenn es etwas anderes als ausgewertet wird Nothing .
argument3 Erforderlich. Object. Wird ausgewertet und zurückgegeben, wenn zu ausgewertet wird argument2 Nothing .

Wenn das Boolean Argument weggelassen wird, muss das erste Argument ein Verweis oder ein Werte zulässt-Werttyp sein. Wenn das erste Argument als ausgewertet wird Nothing , wird der Wert des zweiten Arguments zurückgegeben. In allen anderen Fällen wird der Wert des ersten Arguments zurückgegeben. Im folgenden Beispiel wird veranschaulicht, wie diese Auswertung funktioniert:

' 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))

Weitere Informationen