If – operátor (Visual Basic)

Nástroj používá k podmíněnému vrácení jedné ze dvou hodnot hodnocení krátkodobého okruhu. IfOperátor lze volat se třemi argumenty nebo dvěma argumenty.

Syntax

If( [argument1,] argument2, argument3 )

If volal operátor se třemi argumenty

Když If je volána pomocí tří argumentů, první argument musí být vyhodnocen na hodnotu, která může být převedena jako Boolean . Tato Boolean hodnota určí, který z dalších dvou argumentů bude vyhodnocen a vrácen. Následující seznam platí pouze v případě, že If je operátor volán pomocí tří argumentů.

Součásti

Pojem Definice
argument1 Povinná hodnota. Boolean. Určuje, který z dalších argumentů má být vyhodnocen a vrácen.
argument2 Povinná hodnota. Object. Vyhodnoceno a vráceno, pokud argument1 je vyhodnoceno jako True .
argument3 Povinná hodnota. Object. Vyhodnoceno a vráceno argument1 , pokud se vyhodnotí jako False Proměnná s argument1 možnou hodnotou null Boolean , která je vyhodnocena jako Nothing.

IfOperátor, který je volán se třemi argumenty, funguje jako IIf funkce s tím rozdílem, že používá testování pomocí krátkodobého okruhu. IIfFunkce vždy vyhodnocuje všechny tři argumenty, zatímco If operátor, který má tři argumenty, vyhodnocuje pouze dva z nich. První If argument je vyhodnocen a výsledek je převeden jako Boolean hodnota True nebo False . Pokud je hodnota True , argument2 je vyhodnocena a vrátí se její hodnota, ale není argument3 vyhodnocena. Pokud je hodnota Boolean výrazu False argument3 vyhodnocena a je vrácena jeho hodnota, ale není argument2 vyhodnocena. Následující příklady ilustrují použití If při použití tří argumentů:

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

Následující příklad znázorňuje hodnotu vyhodnocování krátkodobého okruhu. Příklad ukazuje dva pokusy o rozdělení proměnné number podle proměnné, divisor s výjimkou případů divisor , kdy je nula. V takovém případě by měl být vrácen 0 a žádný pokus o provedení dělení, protože by došlo k chybě za běhu. Vzhledem k tomu If , že výraz používá vyhodnocování krátkých okruhů, vyhodnocuje buď druhý, nebo třetí argument v závislosti na hodnotě prvního argumentu. Pokud je první argument true, dělitel není nula a je bezpečné vyhodnotit druhý argument a provést dělení. Pokud je první argument false, je vyhodnocen pouze třetí argument a je vrácena hodnota 0. Proto pokud je dělitel 0, není proveden žádný pokus o provedení dělení a žádné výsledky chyby. Vzhledem k tomu, že IIf nepoužívá vyhodnocování krátkých okruhů, je druhý argument vyhodnocen i v případě, že je první argument nepravdivý. Tím dojde k chybě dělení nulou v době běhu.

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 volal operátor se dvěma argumenty

První argument, který If může být vynechán. To umožňuje operátorovi zavolat pouze pomocí dvou argumentů. Následující seznam platí pouze v případě, že If je operátor volán se dvěma argumenty.

Součásti

Pojem Definice
argument2 Povinná hodnota. Object. Musí se jednat o odkaz nebo typ hodnoty s možnou hodnotou null. Vyhodnoceno a vráceno, když se vyhodnotí jako cokoli jiného než Nothing .
argument3 Povinná hodnota. Object. Vyhodnoceno a vráceno, pokud argument2 je vyhodnoceno jako Nothing .

Při Boolean vynechání argumentu musí být prvním argumentem odkaz nebo typ hodnoty s možnou hodnotou null. Pokud je první argument vyhodnocen jako Nothing , je vrácena hodnota druhého argumentu. Ve všech ostatních případech je vrácena hodnota prvního argumentu. Následující příklad ukazuje, jak Toto vyhodnocení funguje:

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

Viz také