Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Visual Basic détermine le type de données de résultat d’une opération en fonction des types de données des opérandes. Dans certains cas, il peut s’agir d’un type de données avec une plage supérieure à celle de l’un des opérandes.
Plages de types de données
Les plages des types de données pertinents, dans l’ordre le plus petit au plus grand, sont les suivantes :
Boolean : deux valeurs possibles
Short, UShort — 65 536 (6.5...E+4) valeurs intégrales possibles
Entier, UInteger — 4 294 967 296 (4,2...E+9) valeurs intégrales possibles
Long, ULong — 18 446 744 073 709 551 615 (1,8...E+19) valeurs intégrales possibles
Décimal — 1,5...E+29 valeurs intégrales possibles, plage maximale 7,9...E+28 (valeur absolue)
Single — plage maximale 3,4...E+38 (valeur absolue)
Double — plage maximale 1,7...E+308 (valeur absolue)
Pour plus d’informations sur les types de données Visual Basic, consultez Types de données.
Si un opérande prend la valeur Nothing, les opérateurs arithmétiques Visual Basic le traitent comme zéro.
Arithmétique décimale
Notez que le type de données décimal n’est ni à virgule flottante ni à entier.
Si l’un des opérandes d’un +
opérande , , *
–
ou Mod
/
de l’opération est Decimal
et que l’autre n’est pas Single
ou Double
, Visual Basic élargit l’autre opérande à Decimal
. Il effectue l’opération dans Decimal
, et le type de données de résultat est Decimal
.
Floating-Point arithmétique
Visual Basic effectue la plupart des arithmétiques à virgule flottante en Double, qui est le type de données le plus efficace pour ces opérations. Toutefois, si un opérande est Single et que l’autre n’est pas Double
, Visual Basic effectue l’opération dans Single
. Il élargit chaque opérande si nécessaire au type de données approprié avant l’opération, et le résultat a ce type de données.
Opérateurs / et ^
L’opérateur /
est défini uniquement pour les types de données Decimal, Single et Double . Visual Basic élargit chaque opérande si nécessaire au type de données approprié avant l’opération, et le résultat a ce type de données.
Le tableau suivant montre les types de données de résultat pour l’opérateur /
. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, le type de données de résultat est le même, quel que soit l’ordre des opérandes.
Decimal |
Single |
Double |
Tout type entier | |
---|---|---|---|---|
Decimal |
Décimal | Célibataire | Double | Décimal |
Single |
Célibataire | Célibataire | Double | Célibataire |
Double |
Double | Double | Double | Double |
Tout type entier | Décimal | Célibataire | Double | Double |
L’opérateur ^
est défini uniquement pour le type de Double
données. Visual Basic élargit chaque opérande selon les besoins avant Double
l’opération, et le type de données de résultat est toujours Double
.
Entier arithmétique
Le type de données de résultat d’une opération entière dépend des types de données des opérandes. En général, Visual Basic utilise les stratégies suivantes pour déterminer le type de données de résultat :
Si les deux opérandes d’un opérateur binaire ont le même type de données, le résultat a ce type de données. Une exception est
Boolean
, qui est forcée àShort
.Si un opérande non signé participe à un opérande signé, le résultat a un type signé avec au moins autant de plage qu’un opérande.
Sinon, le résultat a généralement la plus grande des deux types de données d’opérande.
Notez que le type de données de résultat peut ne pas être identique à l’un ou l’autre type de données d’opérande.
Remarque
Le type de données de résultat n’est pas toujours suffisamment grand pour contenir toutes les valeurs possibles résultant de l’opération. Une OverflowException exception peut se produire si la valeur est trop grande pour le type de données de résultat.
Opérateurs unaires + et –
Le tableau suivant présente les types de données de résultat pour les deux opérateurs unaires et +
–
.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Unaire + |
Court | SByte | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Unaire – |
Court | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Décimal |
<< et >> opérateurs
Le tableau suivant présente les types de données de résultat pour les deux opérateurs de décalage de bits et <<
>>
. Visual Basic traite chaque opérateur de décalage de bits en tant qu’opérateur unaire sur son opérande gauche (le modèle de bits à décaler).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
<< , >> |
Court | SByte | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Si l’opérande gauche est Decimal
, Single
ou Double
String
, Visual Basic tente de le Long
convertir avant l’opération, et le type de données de résultat est Long
. L’opérande droit (nombre de positions de bits à décaler) doit être Integer
ou un type qui s’élargit à Integer
.
Opérateurs binaires +, –, *et Mod
Le tableau suivant présente les types de données de résultat pour les opérateurs et –
les opérateurs binaires +
et Mod
les *
opérateurs. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, le type de données de résultat est le même, quel que soit l’ordre des opérandes.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Court | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Décimal |
SByte |
SByte | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Décimal |
Byte |
Court | Court | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Short |
Court | Court | Court | Court | Nombre entier | Nombre entier | Long | Long | Décimal |
UShort |
Nombre entier | Nombre entier | UShort | Nombre entier | UShort | Nombre entier | UInteger | Long | ULong |
Integer |
Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Long | Long | Décimal |
UInteger |
Long | Long | UInteger | Long | UInteger | Long | UInteger | Long | ULong |
Long |
Long | Long | Long | Long | Long | Long | Long | Long | Décimal |
ULong |
Décimal | Décimal | ULong | Décimal | ULong | Décimal | ULong | Décimal | ULong |
\Opérateur
Le tableau suivant montre les types de données de résultat pour l’opérateur \
. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, le type de données de résultat est le même, quel que soit l’ordre des opérandes.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Court | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
SByte |
SByte | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
Byte |
Court | Court | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Short |
Court | Court | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
UShort |
Nombre entier | Nombre entier | UShort | Nombre entier | UShort | Nombre entier | UInteger | Long | ULong |
Integer |
Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Long | Long | Long |
UInteger |
Long | Long | UInteger | Long | UInteger | Long | UInteger | Long | ULong |
Long |
Long | Long | Long | Long | Long | Long | Long | Long | Long |
ULong |
Long | Long | ULong | Long | ULong | Long | ULong | Long | ULong |
Si l’un des opérandes de l’opérateur \
est Decimal, Single ou Double, Visual Basic tente de le convertir en Long avant l’opération, et le type de données de résultat est Long
.
Comparaisons relationnelles et au niveau du bit
Le type de données de résultat d’une opération relationnelle (=
, , <>
, <
>
, <=
, ) >=
est toujours Boolean
de type de données booléen. Il en va de même pour les opérations logiques (And
, , AndAlso
Not
, Or
OrElse
, , Xor
) sur Boolean
les opérandes.
Le type de données de résultat d’une opération logique au niveau du bit dépend des types de données des opérandes. Notez que AndAlso
et OrElse
sont définis uniquement pour Boolean
, et Visual Basic convertit chaque opérande selon les besoins Boolean
avant d’effectuer l’opération.
=, , <<>, , <>= >opérateurs
Si les deux opérandes sont Boolean
, Visual Basic considère True
qu’il est inférieur False
à . Si un type numérique est comparé à un String
, Visual Basic tente de convertir celui-ci Double
String
avant l’opération. Un Char
ou Date
un opérande ne peut être comparé qu’à un autre opérande du même type de données. Le type de données de résultat est toujours Boolean
.
Opérateur bitwise Not
Le tableau suivant montre les types de données de résultat pour l’opérateur au niveau Not
du bit.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Not |
Booléen | SByte | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Si l’opérande est Decimal
, Single
ou Double
String
, Visual Basic tente de le Long
convertir avant l’opération, et le type de données de résultat est Long
.
Opérateurs bitwise And, Or et Xor
Le tableau suivant présente les types de données de résultat pour les opérateurs et Or
Xor
les opérateurs au niveau And
du bit. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, le type de données de résultat est le même, quel que soit l’ordre des opérandes.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
---|---|---|---|---|---|---|---|---|---|
Boolean |
Booléen | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
SByte |
SByte | SByte | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
Byte |
Court | Court | Byte | Court | UShort | Nombre entier | UInteger | Long | ULong |
Short |
Court | Court | Court | Court | Nombre entier | Nombre entier | Long | Long | Long |
UShort |
Nombre entier | Nombre entier | UShort | Nombre entier | UShort | Nombre entier | UInteger | Long | ULong |
Integer |
Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Nombre entier | Long | Long | Long |
UInteger |
Long | Long | UInteger | Long | UInteger | Long | UInteger | Long | ULong |
Long |
Long | Long | Long | Long | Long | Long | Long | Long | Long |
ULong |
Long | Long | ULong | Long | ULong | Long | ULong | Long | ULong |
Si un opérande est Decimal
, Single
ou Double
String
, Visual Basic tente de le Long
convertir avant l’opération, et le type de données de résultat est le même que si cet opérande avait déjà été .Long
Opérateurs divers
L’opérateur &
est défini uniquement pour la concaténation des String
opérandes. Visual Basic convertit chaque opérande selon les besoins avant String
l’opération, et le type de données de résultat est toujours String
. Pour les besoins de l’opérateur &
, toutes les conversions à String
considérer comme étant étendues, même si c’est Option Strict
le cas On
.
Les Is
opérateurs et IsNot
les opérateurs nécessitent que les deux opérandes soient d’un type référence. L’expression TypeOf
...Is
nécessite que le premier opérande soit d’un type référence et que le deuxième opérande soit le nom d’un type de données. Dans tous ces cas, le type de données de résultat est Boolean
.
L’opérateur Like
est défini uniquement pour la correspondance de modèles d’opérandes String
. Visual Basic tente de convertir chaque opérande selon les besoins avant String
l’opération. Le type de données de résultat est toujours Boolean
.