Az operátoreredmények adattípusai (Visual Basic)
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 Double
a 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
Lebegőpontos számtani
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 | Egyszeres | Dupla | Decimális |
Single |
Egyszeres | Egyszeres | Dupla | Egyszeres |
Double |
Dupla | Dupla | Dupla | Dupla |
Bármilyen egész számtípus | Decimális | Egyszeres | Dupla | Dupla |
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 Double
az .
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
Boolean
a 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.
Feljegyzé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 | UInteger | Hosszú | ULong |
Unary – |
Rövid | SByte | Rövid | Rövid | Egész | Egész | 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 | UInteger | Hosszú | ULong |
Ha a bal oldali operandus , vagy String
a Visual Basic megpróbálja átalakítani Long
a művelet előttre, és az eredmény adattípusa az Long
. Double
Single
Decimal
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 Integer
tá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 | Egész | Hosszú | Hosszú | Decimális |
SByte |
SByte | SByte | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Decimális |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Decimális |
UShort |
Egész | Egész | UShort | Egész | UShort | Egész | UInteger | Hosszú | ULong |
Integer |
Egész | Egész | Egész | Egész | Egész | Egész | 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 |
\Üzemeltető
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 | Egész | Hosszú | Hosszú | Hosszú |
SByte |
SByte | SByte | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Hosszú |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Hosszú |
UShort |
Egész | Egész | UShort | Egész | UShort | Egész | UInteger | Hosszú | ULong |
Integer |
Egész | Egész | Egész | Egész | Egész | Egész | 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 Boolean
logikai adattípus. <>
Ugyanez igaz az operandusokon (And
, AndAlso
, , Or
Not
, , OrElse
) Xor
vé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 AndAlso
OrElse
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 False
True
a műveletet. Ha numerikus típust hasonlítunk össze egy String
szá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 | UInteger | Hosszú | ULong |
Ha az operandus Decimal
, Single
vagy Double
a String
Visual 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 Or
Xor
az operátorok eredményadattípusát And
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 |
Logikai | SByte | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Hosszú |
SByte |
SByte | SByte | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Hosszú |
Byte |
Rövid | Rövid | Bájt | Rövid | UShort | Egész | UInteger | Hosszú | ULong |
Short |
Rövid | Rövid | Rövid | Rövid | Egész | Egész | Hosszú | Hosszú | Hosszú |
UShort |
Egész | Egész | UShort | Egész | UShort | Egész | UInteger | Hosszú | ULong |
Integer |
Egész | Egész | Egész | Egész | Egész | Egész | 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 Decimal
Single
, , Double
vagy 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 Long
volna.
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 String
az . 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
.
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: