Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Visual Basic egy művelet eredményadattípusát határozza meg az operandusok adattípusa alapján. Bizonyos esetekben ez egy olyan adattípus, amelynek tartománya nagyobb, mint bármelyik operandus esetében.
Adattípus-tartományok
A releváns adattípusok tartományai a legkisebbtől a legnagyobbig a következők:
Logikai – két lehetséges érték
Rövid, UShort – 65 536 (6,5...E+4) lehetséges integrálértékek
Egész szám, UInteger – 4 294 967 296 (4,2...E+9) lehetséges integrálértékek
Hosszú, ULong – 18 446 744 073 709 551 615 (1,8...E+19) lehetséges integrálértékek
Decimális — 1,5...E+29 lehetséges integrálértékek, maximális tartomány 7,9...E+28 (abszolút érték)
Egyetlen – maximális tartomány 3,4...E+38 (abszolút érték)
Dupla – maximális tartomány 1,7...E+308 (abszolút érték)
A Visual Basic adattípusokkal kapcsolatos további információkért lásd: Adattípusok.
Ha egy operandus a Semmi értéket értékeli ki, a Visual Basic aritmetikai operátorok nullának tekintik.
Decimális számtani
Vegye figyelembe, hogy a decimális adattípus nem lebegőpontos vagy egész szám.
Ha egy +, , –, /*vagy művelet Decimal operandusa, a Mod másik pedig nemSingle, akkor Doublea Visual Basic kibővíti a másik operandustDecimal. Végrehajtja a műveletet a következőbenDecimal, és az eredmény adattípusa.Decimal
Floating-Point aritmetikai
A Visual Basic a legtöbb lebegőpontos aritmetikai műveletet dupla értéken hajtja végre, amely az ilyen műveletek leghatékonyabb adattípusa. Ha azonban az egyik operandus önálló , a másik pedig nem Double, a Visual Basic végrehajtja a műveletet a következőben Single: . Szükség szerint kibővíti az egyes operandusokat a megfelelő adattípusra a művelet előtt, és az eredmény ilyen adattípussal rendelkezik.
/ és ^ operátorok
Az / operátor csak a tizedes, az egy és a kettős adattípushoz van definiálva. A Visual Basic szükség szerint kibővíti az egyes operandusokat a megfelelő adattípusra a művelet előtt, és az eredmény ilyen adattípussal rendelkezik.
Az alábbi táblázat az operátor eredményadattípusát / mutatja be. Vegye figyelembe, hogy ez a táblázat szimmetrikus; az operandus adattípusok adott kombinációja esetén az eredmény adattípusa az operandusok sorrendjétől függetlenül megegyezik.
Decimal |
Single |
Double |
Bármilyen egész számtípus | |
|---|---|---|---|---|
Decimal |
Decimális | Egyedülálló | Kétszer | Decimális |
Single |
Egyedülálló | Egyedülálló | Kétszer | Egyedülálló |
Double |
Kétszer | Kétszer | Kétszer | Kétszer |
| Bármilyen egész számtípus | Decimális | Egyedülálló | Kétszer | Kétszer |
Az ^ operátor csak az Double adattípushoz van definiálva. A Visual Basic szükség szerint Double kibővíti az egyes operandusokat a művelet előtt, és az eredmény adattípusa mindig Doubleaz .
Egész számtani
Az egész szám művelet eredmény adattípusa az operandusok adattípusától függ. A Visual Basic általában a következő szabályzatokat használja az eredmény adattípusának meghatározásához:
Ha egy bináris operátor mindkét operandusa ugyanazzal az adattípussal rendelkezik, az eredménynek ez az adattípusa. Ez alól kivételt képeznek
Booleana kényszerítettekShort.Ha egy aláíratlan operandus aláírt operandussal vesz részt, az eredmény egy aláírt típussal rendelkezik, amelynek tartománya legalább akkora, mint bármelyik operandus.
Ellenkező esetben az eredmény általában a két operandus adattípus közül a nagyobb.
Vegye figyelembe, hogy előfordulhat, hogy az eredmény adattípusa nem azonos az operandus adattípusával.
Megjegyzés:
Az eredmény adattípusa nem mindig elég nagy a műveletből eredő összes lehetséges érték tárolásához. Kivétel OverflowException akkor fordulhat elő, ha az érték túl nagy az eredmény adattípusához.
Unary + és – Operátorok
Az alábbi táblázat a két nem naplós operátor + eredményadattípusát és –a .
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Unary + |
Rövid | SByte | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Unary – |
Rövid | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Decimális |
<< és >> operátorok
Az alábbi táblázat a két bitváltásos operátor << eredményadattípusát és >>a . A Visual Basic az egyes bitművelet-operátorokat a bal operandusán (az eltolandó bitmintán) nem látható operátorként kezeli.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
<<, >> |
Rövid | SByte | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Ha a bal oldali operandus , vagy Stringa Visual Basic megpróbálja átalakítani Long a művelet előttre, és az eredmény adattípusa az Long. DoubleSingleDecimal A jobb operandusnak (az eltolandó bitpozíciók számának) kell lennie, vagy olyan típusnak kell lennie Integer , amely a következőre Integertágul.
Bináris +, –, *és mod operátorok
Az alábbi táblázat a bináris + és – operátorok eredményadattípusát, valamint az és Mod operátorokat * mutatja be. Vegye figyelembe, hogy ez a táblázat szimmetrikus; az operandus adattípusok adott kombinációja esetén az eredmény adattípusa az operandusok sorrendjétől függetlenül megegyezik.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Rövid | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Decimális |
SByte |
SByte | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Decimális |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Decimális |
UShort |
Egész szám | Egész szám | UShort | Egész szám | UShort | Egész szám | UInteger | Hosszú | ULong |
Integer |
Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Hosszú | Hosszú | Decimális |
UInteger |
Hosszú | Hosszú | UInteger | Hosszú | UInteger | Hosszú | UInteger | Hosszú | ULong |
Long |
Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Decimális |
ULong |
Decimális | Decimális | ULong | Decimális | ULong | Decimális | ULong | Decimális | ULong |
\Operátor
Az alábbi táblázat az operátor eredményadattípusát \ mutatja be. Vegye figyelembe, hogy ez a táblázat szimmetrikus; az operandus adattípusok adott kombinációja esetén az eredmény adattípusa az operandusok sorrendjétől függetlenül megegyezik.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
Rövid | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
SByte |
SByte | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
UShort |
Egész szám | Egész szám | UShort | Egész szám | UShort | Egész szám | UInteger | Hosszú | ULong |
Integer |
Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
UInteger |
Hosszú | Hosszú | UInteger | Hosszú | UInteger | Hosszú | UInteger | Hosszú | ULong |
Long |
Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú |
ULong |
Hosszú | Hosszú | ULong | Hosszú | ULong | Hosszú | ULong | Hosszú | ULong |
Ha az \ operátor egyik operandusa Decimális, Egy vagy Dupla, a Visual Basic megkísérli hosszúra konvertálni a művelet előtt, és az eredmény adattípusa .Long
Relációs és bitenkénti összehasonlítások
A relációs művelet eredmény adattípusa (=, <>, , <>, <=) >=mindig Booleanlogikai adattípus. Ugyanez igaz az operandusokon (And, AndAlso, , OrNot, , OrElse) Xorvégzett logikai műveletekre Boolean is.
A bitenkénti logikai művelet eredmény adattípusa az operandusok adattípusától függ. Vegye figyelembe, hogy AndAlsoOrElse a csak a Boolean, és a Visual Basic az egyes operandusokat szükség Boolean szerint átalakítja a művelet végrehajtása előtt.
=, <>, <, ><= és >= Operátorok
Ha mindkét operandus azBoolean, a Visual Basic kevesebbnek tekinti FalseTrue a műveletet. Ha numerikus típust hasonlítunk össze egy Stringszámmal, a Visual Basic megpróbálja átalakítani a String művelet előttire Double . Egy Char vagy Date operandus csak egy másik, azonos adattípusú operandussal hasonlítható össze. Az eredmény adattípusa mindig Boolean.
Bitenkénti nem operátor
Az alábbi táblázat a bitenkénti Not operátor eredményadattípusát mutatja be.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Not |
logikai | SByte | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Ha az operandus Decimal, Singlevagy Doublea StringVisual Basic megpróbálja átalakítani Long a művelet előttre, és az eredmény adattípusa .Long
Bitenkénti És, Or és Xor operátorok
Az alábbi táblázat a bitenkénti és OrXor az operátorok eredményadattípusát Andmutatja be. Vegye figyelembe, hogy ez a táblázat szimmetrikus; az operandus adattípusok adott kombinációja esetén az eredmény adattípusa az operandusok sorrendjétől függetlenül megegyezik.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
|---|---|---|---|---|---|---|---|---|---|
Boolean |
logikai | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
SByte |
SByte | SByte | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész szám | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
UShort |
Egész szám | Egész szám | UShort | Egész szám | UShort | Egész szám | UInteger | Hosszú | ULong |
Integer |
Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Egész szám | Hosszú | Hosszú | Hosszú |
UInteger |
Hosszú | Hosszú | UInteger | Hosszú | UInteger | Hosszú | UInteger | Hosszú | ULong |
Long |
Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú | Hosszú |
ULong |
Hosszú | Hosszú | ULong | Hosszú | ULong | Hosszú | ULong | Hosszú | ULong |
Ha egy operandus DecimalSingle, , Doublevagy String, Visual Basic megkísérli átalakítani Long azt a művelet előtt, és az eredmény adattípusa megegyezik azzal, mintha az operandus már lett Longvolna.
Egyéb operátorok
Az & operátor csak az operandusok összefűzéhez String van definiálva. A Visual Basic szükség String szerint átalakítja az egyes operandusokat a művelet előttre, és az eredmény adattípusa mindig Stringaz . Az operátor szempontjából az & összes átalakítás String szélesedőnek minősül, még akkor is, ha Option Strict az On.
Az Is és IsNot az operátorok esetében mindkét operandusnak referenciatípusúnak kell lennie. A TypeOf...Is kifejezés megköveteli, hogy az első operandus referenciatípusú legyen, a második operandus pedig egy adattípus neve legyen. Ezekben az esetekben az eredmény adattípusa .Boolean
Az Like operátor csak az operandusok mintaegyeztetéséhez String van definiálva. A Visual Basic megpróbálja szükség szerint String átalakítani az egyes operandusokat a művelet előttre. Az eredmény adattípusa mindig Boolean.