SByte, type de données (Visual Basic)
Contient des entiers 8 bits (1 octet) signés dont la valeur est comprise entre -128 et 127.
Notes
Utilisez le type de données SByte
pour contenir des valeurs entières qui ne nécessitent pas la largeur de données complète du type Integer
ni même la demi-largeur de données de Short
. Dans certains cas, le Common Language Runtime peut regrouper étroitement vos variables SByte
et réduire la consommation de mémoire.
La valeur par défaut de SByte
est 0.
Affectations littérales
Vous pouvez déclarer et initialiser une variable SByte
en lui attribuant un littéral décimal, un littéral hexadécimal, un littéral octal ou (à partir de Visual Basic 2017) un littéral binaire.
Dans l’exemple suivant, les entiers égaux à -102 représentés comme des littéraux décimaux, hexadécimaux et binaires ont des valeurs SByte
. Dans cet exemple, vous devez compiler avec le commutateur de compilateur /removeintchecks
.
Dim sbyteValue1 As SByte = -102
Console.WriteLine(sbyteValue1)
Dim sbyteValue4 As SByte = &H9A
Console.WriteLine(sbyteValue4)
Dim sbyteValue5 As SByte = &B1001_1010
Console.WriteLine(sbyteValue5)
' The example displays the following output:
' -102
' -102
' -102
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 sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
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 SByte = &H_F9
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.
Si le littéral entier est en dehors de la plage de SByte
(autrement dit, s’il est inférieur à SByte.MinValue ou supérieur à SByte.MaxValue, une erreur de compilation se produit. Quand un littéral entier n’a pas de suffixe, un type Integer est déduit. Si le littéral entier se trouve en dehors de la plage du type Integer
, un type Long est déduit. Cela signifie que, dans les exemples précédents, les littéraux numériques 0x9A
et 0b10011010
sont interprétés comme des entiers signés 32 bits avec une valeur de 156, ce qui dépasse SByte.MaxValue. Pour compiler correctement ce type de code qui attribue un entier non décimal à un type SByte
, vous pouvez effectuer une des opérations suivantes :
Désactiver les vérifications de limites des entiers en compilant avec le commutateur de compilateur
/removeintchecks
.Utiliser un caractère de type pour définir explicitement la valeur littérale que vous voulez attribuer au type
SByte
. L’exemple suivant attribue une valeur littéraleShort
négative à un typeSByte
. Notez que, pour les nombres négatifs, le bit d’ordre haut du mot d’ordre haut du littéral numérique doit être défini. Dans notre exemple, il s’agit du bit 15 de la valeur littéraleShort
.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Conseils de programmation
Conformité CLS. Le type de données
SByte
ne fait pas partie de la CLS (Common Language Specification), de sorte que le code conforme CLS ne peut pas consommer un composant qui l’utilise.Extension. Le type de données
SByte
s’étend àShort
,Integer
,Long
,Decimal
,Single
etDouble
. Cela signifie que vous pouvez convertirSByte
en un de ces types sans rencontrer d’erreur System.OverflowException.Caractères de type.
SByte
n’a pas de caractère de type littéral ni de caractère de type identificateur.Type .NET Framework. Le type correspondant dans le .NET Framework est la structure System.SByte.