Sdílet prostřednictvím


If – operátor (Visual Basic)

Použití zkratové hodnocení podmíněně vrací jednu ze dvou hodnot.If operátor může být volána s tři argumenty nebo dva argumenty.

If( [argument1,] argument2, argument3 )

Pokud operátor volána s tři argumenty:

Při If je volána pomocí tři argumenty musí být první argument hodnota, která vyjadřuje jako Boolean.Že Boolean hodnota určí, které dva argumenty je vyhodnocen a vrátil.V následujícím seznamu se použije pouze tehdy, když If operátor se nazývá pomocí tři argumenty.

Části

Termín

Definice

argument1

Povinné.Boolean.Určuje, které vyhodnotí a vrátíte se argumenty.

argument2

Povinné.Object.Pokud zhodnocena a vrátilo argument1 vyhodnocen jako True.

argument3

Povinné.Object.Pokud zhodnocena a vrátilo argument1 vyhodnocen jako False nebo pokud argument1 je s možnou hodnotou NullBooleanproměnná , jehož výsledkem je nic.

If operátor je volána s tři argumenty pracuje stejně jako IIf funkce až na to, že používá zkratové hodnocení. IIf funkce vyhodnocuje vždy všechny tři argumenty, že If operátor , který obsahuje tři argumenty vyhodnocuje pouze dva. První Ifje argument vyhodnocen a výsledek je nádech jako Boolean hodnotu True nebo False. Pokud je hodnota True, argument2 je vyhodnocen a jeho hodnota vrácena, ale argument3 nebudou vyhodnoceny.Pokud hodnota Boolean výraz je False, argument3 je vyhodnocena a jeho hodnota vrácena, ale argument2 nebudou vyhodnoceny.Následující příklady ilustrují použití If při použití tři 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"))

Následující příklad ukazuje hodnotu zkratové hodnocení.Příklad ukazuje dva pokusy o rozdělení proměnná number proměnná divisor Pokud divisor je nula. V takovém případě by měla být vrácena 0 a žádný, je třeba provést rozdělení, protože by způsobit spuštění chyba .Protože If používá výraz zkratové hodnocení, vyhodnotí druhý nebo třetí argument, v závislosti na hodnotě prvního argument.Pokud první argument je PRAVDA, dělitel je nula a je bezpečné druhý argument vyhodnotit a provést rozdělení.Pokud první argument je NEPRAVDA, je vyhodnocena pouze třetí argument a vrátí hodnotu 0.Proto Pokud dělitel je 0, žádné pokusu provést rozdělení a výsledky žádné chyba .Ale protože IIf nepoužívá zkratové hodnocení, druhý argument je vyhodnocena, i když první argument je NEPRAVDA.To způsobí spuštění dělení-o-nula.

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

Pokud operátor, nazývá se dvěma argumenty

První argument If lze vynechat.Díky operátor má být volána pomocí pouze dva argumenty.V následujícím seznamu se použije pouze tehdy, když If operátor , nazývá se dvěma argumenty.

Části

Termín

Definice

argument2

Povinné.Object.Musí být typ s možnou hodnotou null.Vyhodnoceny a vrácena v případě, že půjde o nic než Nothing.

argument3

Povinné.Object.Pokud zhodnocena a vrátilo argument2 vyhodnocen jako Nothing.

Když Booleanje tento argument vynechán, je první argument musí být typ s možnou hodnotou null. Pokud první argument vyhodnocen jako Nothing, je vrácena hodnota druhého argument .V ostatních případech je vrácena hodnota prvního argument .Následující příklad ukazuje, jak funguje hodnocení.

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

Referenční dokumentace

Nothing (Visual Basic)

IIf

Koncepty

Typy hodnot s povolenou hodnotou Null (Visual Basic)