Datové typy výsledků operátoru (Visual Basic)
Jazyk Visual Basic určuje datový typ výsledku operace na základě datových typů operandů. V některých případech to může být datový typ s větším rozsahem než jeden operand.
Rozsahy relevantních datových typů, v pořadí od nejmenšího po největší, jsou následující:
Logická hodnota – dvě možné hodnoty
Krátký, UShort — 65 536 (6,5...E+4) možné celočíselné hodnoty
Celé číslo, UInteger — 4,294,967,296 (4,2...E+9) možné celočíselné hodnoty
Long, ULong – 18 446 744 073 709 551 615 (1,8...E+19) možné integrální hodnoty
Desetinné číslo – 1,5...E+29 možné celočíselné hodnoty, maximální rozsah 7,9...E+28 (absolutní hodnota)
Jednoduchý – maximální rozsah 3,4...E+38 (absolutní hodnota)
Double — maximální rozsah 1,7...E+308 (absolutní hodnota)
Další informace o datových typech jazyka Visual Basic naleznete v tématu Datové typy.
Pokud se operand vyhodnotí jako Nothing, aritmetické operátory jazyka Visual Basic ji považují za nula.
Všimněte si, že datový typ Decimal není číslo s plovoucí desetinnou čárkou ani celé číslo.
Pokud je operand +
, , –
, /
*
nebo Mod
operace Decimal
a druhý není Single
nebo Double
, Jazyk Visual Basic rozšiřuje druhý operand na Decimal
. Provádí operaci v Decimal
a výsledek datového typu je Decimal
.
Jazyk Visual Basic provádí většinu aritmetik s plovoucí deseti desetinou čárkou v double, což je nejúčinnější datový typ pro takové operace. Nicméně, pokud jeden operand je Single a druhý není Double
, Visual Basic provede operaci v Single
. Rozšiřuje každý operand podle potřeby na příslušný datový typ před operací a výsledek má tento datový typ.
Operátor /
je definován pouze pro datové typy Decimal, Single a Double . Jazyk Visual Basic rozšiřuje každý operand podle potřeby na příslušný datový typ před operací a výsledek má tento datový typ.
V následující tabulce jsou uvedeny datové typy výsledků operátoru /
. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Decimal |
Single |
Double |
Libovolný typ celého čísla | |
---|---|---|---|---|
Decimal |
Desetinné číslo | Jeden | Hodnota s dvojitou přesností | Desetinné číslo |
Single |
Jednotlivé | Jednotlivé | Hodnota s dvojitou přesností | Jeden |
Double |
Hodnota s dvojitou přesností | Hodnota s dvojitou přesností | Hodnota s dvojitou přesností | Hodnota s dvojitou přesností |
Libovolný typ celého čísla | Desetinné číslo | Jeden | Hodnota s dvojitou přesností | Hodnota s dvojitou přesností |
Operátor ^
je definován pouze pro Double
datový typ. Jazyk Visual Basic rozšiřuje každý operand podle potřeby na Double
před operací a datový typ výsledku je vždy Double
.
Datový typ výsledku celočíselné operace závisí na datových typech operandů. Obecně platí, že Jazyk Visual Basic používá k určení datového typu výsledku následující zásady:
Pokud oba operandy binárního operátoru mají stejný datový typ, výsledek má tento datový typ. Výjimka je
Boolean
, která je nucenaShort
.Pokud se nepodepsaný operand účastní se znaménkem operandu, má výsledek typ se znaménkem s alespoň tak velkým rozsahem jako jeden operand.
V opačném případě má výsledek obvykle větší ze dvou datových typů operandu.
Všimněte si, že datový typ výsledku nemusí být stejný jako datový typ operandu.
Poznámka
Datový typ výsledku není vždy dostatečně velký, aby mohl obsahovat všechny možné hodnoty vyplývající z operace. K výjimce OverflowException může dojít, pokud je hodnota pro datový typ výsledku příliš velká.
Následující tabulka uvádí datové typy výsledků pro dva unární operátory +
a –
.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Unární + |
Krátké | SByte | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Unární – |
Krátké | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
Následující tabulka uvádí datové typy výsledků pro dva operátory <<
bitové směny a >>
. Visual Basic zachází s každým operátorem posunu bitu jako s unárním operátorem v levém operandu (bitový vzor, který se má posunout).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
<< , >> |
Krátké | SByte | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Pokud je Decimal
levý operand , Single
nebo Double
String
, Visual Basic se pokusí jej převést na Long
před operací a výsledek datový typ je Long
. Pravý operand (počet bitových pozic pro posun) musí být Integer
nebo typ, který se rozšiřuje na Integer
.
Následující tabulka ukazuje datové typy výsledků pro binární +
a operátory a –
operátory a Mod
operátory*
. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Krátké | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
SByte |
SByte | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
Byte |
Krátké | Krátké | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
UShort |
Celé číslo | Celé číslo | UShort | Celé číslo | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Integer |
Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
UInteger |
Dlouhé celé číslo | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Long |
Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Desetinné číslo |
ULong |
Desetinné číslo | Desetinné číslo | ULong | Desetinné číslo | ULong | Desetinné číslo | ULong | Desetinné číslo | ULong |
V následující tabulce jsou uvedeny datové typy výsledků operátoru \
. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Krátké | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
SByte |
SByte | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
Byte |
Krátké | Krátké | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
UShort |
Celé číslo | Celé číslo | UShort | Celé číslo | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Integer |
Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
UInteger |
Dlouhé celé číslo | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Long |
Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
ULong |
Dlouhé celé číslo | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong |
Pokud je operand operátoru \
Decimal, Single nebo Double, Visual Basic se pokusí jej převést na Long před operací a výsledek datový typ je Long
.
Datový typ výsledku relační operace (=
, <>
, <
>
, <=
) >=
je vždy Boolean
logický datový typ. Totéž platí pro logické operace (And
, AndAlso
, Not
, Or
, OrElse
Xor
) na Boolean
operandech.
Datový typ výsledku bitové logické operace závisí na datových typech operandů. Všimněte si, že AndAlso
a OrElse
jsou definovány pouze pro Boolean
a Visual Basic převede každý operand podle potřeby na Boolean
před provedením operace.
Pokud jsou Boolean
oba operandy , Visual Basic se domnívá True
, že je menší než False
. Pokud je číselný typ porovnán s String
, Visual Basic se pokusí převést na String
Double
před operací. A Char
nebo Date
operand lze porovnat pouze s jiným operandem stejného datového typu. Datový typ výsledku je vždy Boolean
.
Následující tabulka ukazuje datové typy výsledků pro bitový Not
operátor.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Not |
Logická hodnota | SByte | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Pokud je Decimal
operand , , Single
Double
nebo String
, Visual Basic pokusí jej převést na Long
před operací a výsledek datový typ je Long
.
Následující tabulka uvádí datové typy výsledků pro bitové And
Or
operátory a Xor
operátory. Všimněte si, že tato tabulka je symetrická; pro danou kombinaci datových typů operandu je výsledný datový typ stejný bez ohledu na pořadí operandů.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Logická hodnota | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
SByte |
SByte | SByte | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
Byte |
Krátké | Krátké | Byte | Krátké | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Short |
Krátké | Krátké | Krátké | Krátké | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
UShort |
Celé číslo | Celé číslo | UShort | Celé číslo | UShort | Celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Integer |
Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
UInteger |
Dlouhé celé číslo | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | Celé číslo UInteger | Dlouhé celé číslo | ULong |
Long |
Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo | Dlouhé celé číslo |
ULong |
Dlouhé celé číslo | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong | Dlouhé celé číslo | ULong |
Pokud je Decimal
operand , , Single
Double
nebo String
, Visual Basic se pokusí převést na Long
před operací, a výsledný datový typ je stejný jako v případě, že tento operand již byl Long
.
Operátor &
je definován pouze pro zřetězení String
operandů. Jazyk Visual Basic převede každý operand podle potřeby na String
před operací a datový typ výsledku je vždy String
. Pro účely operátoru &
jsou všechny převody String
považovány za rozšiřující, i když Option Strict
je On
.
Operátory Is
a IsNot
operátory vyžadují, aby oba operandy byly odkazovým typem. Výraz TypeOf
...Is
vyžaduje, aby první operand byl odkazovým typem a druhým operandem byl název datového typu. Ve všech těchto případech je Boolean
datový typ výsledku .
Operátor Like
je definován pouze pro porovnávání vzorů String
operandů. Visual Basic se pokusí podle potřeby převést každý operand na String
před operací. Datový typ výsledku je vždy Boolean
.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: