UInteger (type de données)
Contient des entiers 32 bits (4 octets) non signés dont la valeur est comprise entre 0 et 4 294 967 295.
Notes
Le type de données UInteger
fournit la plus grande valeur non signée dans la largeur de données la plus efficace.
La valeur par défaut de UInteger
est 0.
Affectations littérales
Vous pouvez déclarer et initialiser une variable UInteger
en lui affectant un littéral décimal, un littéral hexadécimal, un littéral octal ou (à partir de Visual Basic 2017) un littéral binaire. Si le littéral entier est en dehors de la plage de UInteger
(autrement dit, s’il est inférieur à UInt32.MinValue ou supérieur à UInt32.MaxValue, une erreur de compilation se produit.
Dans l’exemple suivant, les entiers égaux à 3 000 000 000 représentés comme des littéraux décimaux, hexadécimaux et binaires sont assignés aux valeurs UInteger
.
Dim uintValue1 As UInteger = 3000000000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D05E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Notes
Vous utilisez le préfixe &h
ou &H
pour désigner un littéral hexadécimal, le préfixe &b
ou &B
pour désigner un littéral binaire, et le préfixe &o
ou &O
pour désigner un littéral octal. Les littéraux décimaux n’ont pas de préfixe.
À compter de Visual Basic 2017, vous pouvez également utiliser le caractère de soulignement, _
, comme un séparateur numérique pour améliorer la lisibilité, comme dans l’exemple suivant.
Dim uintValue1 As UInteger = 3_000_000_000ui
Console.WriteLine(uintValue1)
Dim uintValue2 As UInteger = &HB2D0_5E00ui
Console.WriteLine(uintValue2)
Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
' 3000000000
' 3000000000
' 3000000000
Depuis Visual Basic 15.5, vous pouvez également utiliser le caractère de soulignement (_
) comme séparateur de début entre le préfixe et les chiffres hexadécimaux, binaires ou octaux. Par exemple :
Dim number As UInteger = &H_0F8C_0326
Pour utiliser le caractère de soulignement comme séparateur de début, vous devez ajouter l’élément suivant à votre fichier projet Visual Basic (*.vbproj) :
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Pour plus d’informations, consultez Sélectionner la version du langage Visual Basic.
Les littéraux numériques peuvent également inclure le caractère de type UI
ou ui
pour désigner le type de données UInteger
, comme le montre l’exemple suivant.
Dim number = &H_0FAC_14D7ui
Conseils de programmation
Les types de données UInteger
et Integer
fournissent des performances optimales sur un processeur 32 bits, car les plus petits types entiers (UShort
, Short
, Byte
et SByte
), même s’ils utilisent moins de bits, prennent plus de temps pour charger, stocker et extraire.
Nombres négatifs. Étant donné que
UInteger
est un type non signé, il ne peut pas représenter un nombre négatif. Si vous utilisez l’opérateur unaire moins (-
) sur une expression qui prend la valeur de typeUInteger
, Visual Basic convertit d’abord l’expression enLong
.Conformité CLS. Le type de données
UInteger
ne fait pas partie de la spécification CLS (Common Language Specification), de sorte que le code conforme CLS ne peut pas consommer un composant qui l’utilise.Considérations sur l'interopérabilité. Si vous utilisez des composants non écrits pour le .NET Framework, par exemple des objets Automation ou COM, n’oubliez pas que les types comme
uint
peuvent avoir une largeur de données différente (16 bits) dans les autres environnements. Si vous passez un argument de 16 bits à un tel composant, déclarez-le en tant que type de donnéesUShort
et nonUInteger
dans votre code Visual Basic managé.Extension. Le type de données
UInteger
s’étend àLong
,ULong
,Decimal
,Single
etDouble
. Cela signifie que vous pouvez convertirUInteger
en l’un de ces types sans rencontrer d’erreur System.OverflowException.Caractères de type. L’ajout de caractères de type littéral
UI
à un littéral force ce dernier en type de donnéesUInteger
.UInteger
ne possède pas de caractère de type d’identificateur.Type .NET Framework. Le type correspondant dans le .NET Framework est la structure System.UInt32.