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őBoolean vá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 Boolean
True
False
vagy . Ha az érték , True
argument2
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, Nothing
a 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: