Long, type de données (Visual Basic)

Contient des entiers 64 bits (8 octets) signés dont la valeur est comprise entre -9 223 372 036 854 775 808 et 9 223 372 036 854 775 807 (9,2...E+18).

Notes

Utilisez le type de données Long pour contenir les nombres entiers qui sont trop grands pour le type de données Integer.

La valeur par défaut de Long est 0.

Affectations littérales

Vous pouvez déclarer et initialiser une variable Long 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 Long (autrement dit, s’il est inférieur à Int64.MinValue ou supérieur à Int64.MaxValue, une erreur de compilation se produit.

Dans l’exemple suivant, les entiers égaux à 4 294 967 296 représentés comme des littéraux décimaux, hexadécimaux et binaires sont assignés aux valeurs Long.

Dim longValue1 As Long = 4294967296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H100000000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

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 longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

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 Long = &H_0FAC_0326_1489_D68C

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 L caractère de type pour désigner le type de données Long, comme le montre l’exemple suivant.

Dim number = &H_0FAC_0326_1489_D68CL

Conseils de programmation

  • 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 Long a une largeur de données différente (32 bits) dans les autres environnements. Si vous passez un argument de 32 bits à ce type de composant, déclarez-le comme Integer au lieu de Long dans votre nouveau code Visual Basic.

  • Extension. Le type de données Long s’étend à Decimal, Single ou Double. Cela signifie que vous pouvez convertir Long en l'un de ces types sans rencontrer d'erreur System.OverflowException.

  • Caractères de type. L'ajout du caractère de type littéral L à un littéral force ce dernier en type de données Long. L'ajout du caractère de type identificateur & à un identificateur force ce dernier en type Long.

  • Type .NET Framework. Le type correspondant dans le .NET Framework est la structure System.Int64.

Voir aussi