Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Używa oceny zwarciowej, aby warunkowo zwrócić jedną z dwóch wartości. Operator If
może być wywoływany z trzema argumentami lub z dwoma argumentami.
Składnia
If( [argument1,] argument2, argument3 )
Jeśli operator wywoływany z trzema argumentami
Gdy If
jest wywoływana przy użyciu trzech argumentów, pierwszy argument musi zostać obliczony na wartość, którą można rzutować jako Boolean
. Ta Boolean
wartość określi, które z pozostałych dwóch argumentów są oceniane i zwracane. Poniższa lista ma zastosowanie tylko wtedy, gdy If
operator jest wywoływany przy użyciu trzech argumentów.
generatora
Termin | Definicja |
---|---|
argument1 |
Wymagany. Boolean . Określa, które z pozostałych argumentów mają być obliczane i zwracane. |
argument2 |
Wymagany. Object . Obliczone i zwrócone, jeśli argument1 wartość ma wartość True . |
argument3 |
Wymagany. Object . Obliczone i zwrócone, jeśli argument1 zostanie obliczona wartość lub False jeśli argument1 jest zmienną dopuszczającąBoolean wartość Null, która daje wartość Nothing. |
Operator wywoływany z trzema If
argumentami działa jak funkcja, z tą różnicą IIf
, że używa oceny zwarciowej. IIf
Funkcja zawsze ocenia wszystkie trzy argumenty, natomiast If
operator, który ma trzy argumenty, ocenia tylko dwa z nich. Pierwszy If
argument jest obliczany, a wynik jest rzutowany jako Boolean
wartość True
lub False
. Jeśli wartość to True
, argument2
jest obliczana, a jej wartość jest zwracana, ale argument3
nie jest obliczana. Jeśli wartość Boolean
wyrażenia to False
, argument3
jest obliczana i zwracana jest jego wartość, ale argument2
nie jest obliczana. W poniższych przykładach przedstawiono sposób użycia If
trzech argumentów:
' 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"))
W poniższym przykładzie przedstawiono wartość oceny zwarć obwodu. W przykładzie pokazano dwie próby podzielenia zmiennej number
przez zmienną divisor
, z wyjątkiem sytuacji, gdy divisor
jest to zero. W takim przypadku należy zwrócić wartość 0 i nie należy podejmować żadnej próby wykonania dzielenia, ponieważ wynik błędu czasu wykonywania. If
Ponieważ wyrażenie używa oceny zwarciowej, oblicza drugi lub trzeci argument, w zależności od wartości pierwszego argumentu. Jeśli pierwszy argument ma wartość true, dzielniki nie są zerowe i można bezpiecznie ocenić drugi argument i wykonać podział. Jeśli pierwszy argument ma wartość false, zwracany jest tylko trzeci argument i zwracany jest argument 0. W związku z tym, gdy dzielnika wynosi 0, nie jest podejmowana próba wykonania dzielenia i brak wyników błędu. Jednak ponieważ IIf
nie używa oceny zwarciowej, drugi argument jest obliczany nawet wtedy, gdy pierwszy argument jest fałszywy. Powoduje to błąd dzielenia w czasie wykonywania przez zero.
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))
Jeśli operator wywoływany z dwoma argumentami
Pierwszy argument, który można pominąć If
. Dzięki temu operator może być wywoływany przy użyciu tylko dwóch argumentów. Poniższa lista ma zastosowanie tylko wtedy, gdy If
operator jest wywoływany z dwoma argumentami.
generatora
Termin | Definicja |
---|---|
argument2 |
Wymagany. Object . Musi być typem wartości referencyjnej lub dopuszczanej do wartości null. Obliczone i zwrócone, gdy oblicza wartość dowolnego elementu innego niż Nothing . |
argument3 |
Wymagany. Object . Obliczone i zwrócone, jeśli argument2 wartość ma wartość Nothing . |
Po pominięciu argumentu Boolean
pierwszy argument musi być typem wartości referencyjnej lub dopuszczanej do wartości null. Jeśli pierwszy argument zwróci Nothing
wartość , zwracana jest wartość drugiego argumentu. We wszystkich innych przypadkach zwracana jest wartość pierwszego argumentu. W poniższym przykładzie pokazano, jak działa ta ocena:
' 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))