Ha operátor (Visual Basic)

Rövidzárlat-kiértékelés használatával feltételesen visszaadja a két érték egyikét. Az If operátor három argumentummal vagy két argumentummal hívható meg.

Syntax

If( [argument1,] argument2, argument3 )

Ha az operátor három argumentummal van meghívva

Ha If három argumentum használatával hívjuk meg, az első argumentumnak olyan értékre kell kiértékelnie, amely megadható.Boolean Ez Boolean az érték határozza meg, hogy a másik két argumentum közül melyik lesz kiértékelve és visszaadva. Az alábbi lista csak akkor érvényes, ha az If operátort három argumentum használatával hívja meg a rendszer.

Részek

Időszak Definíció
argument1 Szükséges. Boolean. Meghatározza, hogy a többi argumentum közül melyiket kell kiértékelni és visszaadni.
argument2 Szükséges. Object. Kiértékelve és visszaadva, ha argument1 a kiértékelés eredménye .True
argument3 Szükséges. Object. Kiértékelve és visszaadva, ha argument1 a kiértékelés False eredménye null értékű változó, vagy ha argument1 a semmire kiértékelhetőBooleanváltozó.

A If három argumentummal hívott operátor függvényként IIf működik, azzal a kivételével, hogy rövidzárlatos értékelést használ. A IIf függvények mindig mindhárom argumentumát kiértékelik, míg egy If három argumentumot tartalmazó operátor csak kettőt értékel ki. Az első If argumentum kiértékelése és az eredmény értékként BooleanTrueFalsevagy . Ha az érték , Trueargument2 akkor a függvény kiértékeli és visszaadja az értékét, de argument3 nem értékeli ki. Ha a Boolean kifejezés értéke kiértékelve van False, argument3 a függvény kiértékeli és visszaadja az értékét, de argument2 nem értékeli ki. Az alábbi példák három argumentum használatát If szemléltetik:

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

Az alábbi példa a rövidzárlat-kiértékelés értékét mutatja be. A példa két változóval divisor való osztási number kísérletet mutat be, kivéve, ha divisor nulla. Ebben az esetben 0-t kell visszaadni, és nem szabad megkísérelni az osztást, mert futásidejű hiba következne be. Mivel a If kifejezés rövidzárlat-kiértékelést használ, az első argumentum értékétől függően a második vagy a harmadik argumentumot értékeli ki. Ha az első argumentum igaz, az osztó nem nulla, és nyugodtan kiértékelheti a második argumentumot, és végrehajthatja az osztást. Ha az első argumentum hamis, a rendszer csak a harmadik argumentumot értékeli ki, és egy 0 értéket ad vissza. Ezért ha az osztó 0, a rendszer nem kísérli meg a osztást, és nem eredményez hibaeredményt. Mivel IIf azonban nem használ rövidzárlatos értékelést, a második argumentum akkor is kiértékelésre kerül, ha az első argumentum hamis. Ez futásidejű osztva nullával hibát okoz.

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

Ha az operátor két argumentummal van meghívva

Az első argumentum If kihagyható. Ez lehetővé teszi az operátor meghívását csak két argumentum használatával. Az alábbi lista csak akkor érvényes, ha az If operátor két argumentummal van meghívva.

Részek

Időszak Definíció
argument2 Szükséges. Object. Hivatkozási vagy null értékű típusnak kell lennie. Kiértékelve és visszaadva, ha a kiértékelés nem más, mint Nothing.
argument3 Szükséges. Object. Kiértékelve és visszaadva, ha argument2 a kiértékelés eredménye .Nothing

Boolean Az argumentum kihagyásakor az első argumentumnak hivatkozásnak vagy null értékűnek kell lennie. Ha az első argumentum értéke, Nothinga második argumentum értéke lesz visszaadva. Minden más esetben az első argumentum értéke lesz visszaadva. Az alábbi példa a kiértékelés működését mutatja be:

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

Lásd még