Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwendet die Kurzschlussauswertung, 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 )
Wenn der Operator mit drei Argumenten aufgerufen wird
Wenn If das erste Argument mithilfe von drei Argumenten aufgerufen wird, muss das erste Argument als Wert ausgewertet werden, der als ein BooleanWert gegossen werden kann. Dieser Boolean Wert bestimmt, welche der anderen beiden Argumente ausgewertet und zurückgegeben wird. Die folgende Liste gilt nur, wenn der If Operator mithilfe von drei Argumenten aufgerufen wird.
Bestandteile
| Begriff | Definition |
|---|---|
argument1 |
Erforderlich.
Boolean. Bestimmt, welche der anderen Argumente ausgewertet und zurückgegeben werden sollen. |
argument2 |
Erforderlich.
Object. Ausgewertet und zurückgegeben, wenn argument1 ausgewertet zu True. |
argument3 |
Erforderlich.
Object. Wird ausgewertet und zurückgegeben, wenn argument1 es sich um Falseargument1 eine Nullwertevariable-VariableBoolean handelt, die als Nothing ausgewertet wird. |
Ein If Operator, der mit drei Argumenten aufgerufen wird, funktioniert wie eine IIf Funktion, mit der Ausnahme, dass er kurzschlussauswertung verwendet. Eine IIf Funktion wertet immer alle drei Argumente aus, während ein If Operator mit drei Argumenten nur zwei davon auswertet. Das erste If Argument wird ausgewertet, und das Ergebnis wird als Boolean Wert TrueFalseoder . Wenn der Wert ist True, argument2 wird ausgewertet, und sein Wert wird zurückgegeben, aber argument3 nicht ausgewertet. Wenn der Wert des Boolean Ausdrucks Falseist, argument3 wird ausgewertet, und der Wert wird zurückgegeben, aber argument2 nicht ausgewertet. Die folgenden Beispiele veranschaulichen die Verwendung von If drei Argumenten:
' 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 Kurzschlussauswertung veranschaulicht. Das Beispiel zeigt zwei Versuche zum Dividieren der Variablen number durch Variable divisor mit Ausnahme von divisor Null. In diesem Fall sollte eine 0 zurückgegeben werden, und es sollte kein Versuch unternommen werden, die Division auszuführen, da ein Laufzeitfehler zu einem Fehler führen würde. Da der If Ausdruck kurzschlussauswertung verwendet, wird je nach Wert des ersten Arguments entweder das zweite oder das dritte Argument ausgewertet. Wenn das erste Argument wahr ist, ist der Divisor nicht null und es ist sicher, das zweite Argument auszuwerten und die Division auszuführen. Wenn das erste Argument falsch ist, wird nur das dritte Argument ausgewertet und ein 0 zurückgegeben. Wenn der Divisor 0 ist, wird daher kein Versuch unternommen, die Division auszuführen, und keine Fehlerergebnisse. Da IIf jedoch keine Kurzschlussauswertung verwendet wird, wird das zweite Argument auch dann ausgewertet, wenn das erste Argument falsch ist. Dies führt zu einem Laufzeitteilungsfehler durch 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))
Wenn der Operator mit zwei Argumenten aufgerufen wird
Das erste Argument, das If ausgelassen werden kann. 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 Bezugs- oder Nullwerttyp sein. Ausgewertet und zurückgegeben, wenn sie auf einen anderen Wert als Nothingausgewertet wird. |
argument3 |
Erforderlich.
Object. Ausgewertet und zurückgegeben, wenn argument2 ausgewertet zu Nothing. |
Wenn das Boolean Argument nicht angegeben wird, muss das erste Argument ein Bezugs- oder Nullwerttyp sein. Wenn das erste Argument ausgewertet wird Nothing, wird der Wert des zweiten Arguments zurückgegeben. In allen anderen Fällen wird der Wert des ersten Arguments zurückgegeben. Das folgende Beispiel 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))