If — Operator (Visual Basic)
Zastosowań zwarcie oceny warunkowo zwraca jedną z dwóch wartości.If operator może być wywołana z trzech argumentów lub dwa argumenty.
If( [argument1,] argument2, argument3 )
Jeżeli podmiot gospodarczy o nazwie trzy argumenty
Gdy If jest wywoływana przy użyciu trzech argumentów, pierwszy argument musi dawać w wyniku wartość, która może być oddane jako Boolean.Aby Boolean wartość będzie określać, które dwa argumenty jest przetwarzane i zwracana.Poniższa lista ma zastosowanie tylko wtedy, gdy Ifza pomocą trzech argumentów wywoływany jest operator .
Części
Termin |
Definicja |
argument1 |
Wymagane.Boolean.Określa, która innych argumentów do oceny i zwrotu. |
argument2 |
Wymagane.Object.Ocenione i zwracane, gdy argument1 wynikiem True. |
argument3 |
Wymagane.Object.Ocenione i zwracane, gdy argument1 wynikiem False lub jeśli argument1 jest NullableBooleanzmienna ma wartość nic nie. |
If operator jest wywoływana z trzech argumentów działa jak IIf funkcja , z wyjątkiem, że używa zwarcie oceny. IIf funkcja ocenia z wszystkich trzech z jej argumentów, zawsze należy If operator , który ma trzy argumenty ocenia tylko dwóch z nich. Pierwszy If argument jest oceniane, a wynik jest rzutowany jako Boolean wartości, True lub False. Jeśli wartość jest True, argument2 jest oceniane, a jego wartość jest zwracana, ale argument3 nie jest sprawdzane.Jeśli wartość Boolean wyrażenie jest False, argument3 jest oceniane, a jego wartość jest zwracana, ale argument2 nie jest sprawdzane.Poniższe przykłady ilustrują użycie If kiedy są używane trzy argumenty:
' 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"))
Poniższy przykład przedstawia wartość zwarcie oceny.W przykładzie przedstawiono dwie próby dzielenia zmienna number przez zmienna divisor z wyjątkiem sytuacji gdy divisor jest zero. W takim przypadku powinna zostać zwrócona wartość 0, a nie należy do przeprowadzenia podziału, ponieważ mogłoby spowodować błąd czasu wykonania .Ponieważ If wyrażenie zastosowań zwarcie oceny, ocenia drugi lub trzeci argument, w zależności od wartości pierwszego argument.Jeśli pierwszy argument jest prawdą, dzielnik jest różna zero i bezpiecznie oceny drugi argument i wykonać podział.Jeśli pierwszy argument ma wartość false, tylko trzeci argument jest oceniany i zwracana jest wartość 0.W związku z tym gdy dzielnik jest równy 0, nie są podejmowane próby przeprowadzenia podziału i żadne wyniki błędu.Jednakże ponieważ IIf nie używać zwarcie oceny, drugi argument jest ocenić nawet wtedy, gdy pierwszy argument ma wartość false.To powoduje dzielenie run-time-według-błądzero .
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żeli podmiot gospodarczy o nazwie z dwoma argumentami
Pierwszy argument do If mogą być pominięte.Umożliwia to operator ma być wywoływana za pomocą tylko dwóch argumentów.Poniższa lista ma zastosowanie tylko wtedy, gdy If operator jest wywoływana z dwóch argumentów.
Części
Termin |
Definicja |
argument2 |
Wymagane.Object.Musi być odniesienia lub typ dopuszczający wartość null.Ocenione i zwracane, kiedy wyliczy ono złą cokolwiek innego niż Nothing. |
argument3 |
Wymagane.Object.Ocenione i zwracane, gdy argument2 wynikiem Nothing. |
Gdy Boolean argument zostanie pominięty, pierwszy argument musi być odniesienia lub typ dopuszczający wartość null. Jeśli pierwszy argument ma wartość Nothing, zwracana jest wartość z drugiego argument .We wszystkich innych przypadkach zwracana jest wartość pierwszego argument .Poniższy przykład ilustruje, 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))