Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Contiene interi con segno a 8 bit (1 byte) con valori compresi tra -128 e 127.
Osservazioni:
Utilizzare il tipo di dati SByte per contenere valori interi che non richiedono l'intera larghezza dei dati di Integer o anche la metà della larghezza dei dati di Short. In alcuni casi Common Language Runtime potrebbe essere in grado di comprimere strettamente le variabili SByte e risparmiare l'utilizzo della memoria.
Il valore predefinito di SByte è 0.
Assegnazioni di valori letterali
È possibile dichiarare e inizializzare una variabile SByte assegnandole un valore letterale decimale, un valore letterale esadecimale, un valore letterale ottale o (a partire da Visual Basic 2017) un valore letterale binario.
Nell'esempio seguente, gli interi uguali a -102 rappresentati come valori letterali decimali, esadecimali e binari vengono assegnati ai valori SByte. Questo esempio richiede la compilazione con l'opzione del compilatore /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
Nota
Si utilizza il prefisso &h o &H per indicare un valore letterale esadecimale, il prefisso &b o &B per indicare un valore letterale binario e il prefisso &o o &O per indicare un valore letterale ottale. I valori letterali decimali non hanno prefissi.
A partire da Visual Basic 2017, è possibile anche usare il carattere underscore, _, come separatore di cifre per migliorare la leggibilità, come illustrato nell'esempio seguente.
Dim sbyteValue3 As SByte = &B1001_1010
Console.WriteLine(sbyteValue3)
' The example displays the following output:
' -102
A partire da Visual Basic 15.5, è possibile anche usare il carattere underscore (_) come separatore iniziale tra il prefisso e le cifre esadecimali, binarie oppure ottali. Ad esempio:
Dim number As SByte = &H_F9
Per usare il carattere underscore come separatore iniziale, è necessario aggiungere l'elemento seguente al file di progetto Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Per altre informazioni, vedere Selezionare la versione del linguaggio Visual Basic.
Se il valore letterale integer è esterno all'intervallo di SByte, vale a dire se è minore di SByte.MinValue o maggiore di SByte.MaxValue, si verifica un errore di compilazione. Quando un valore letterale intero non ha suffisso, viene dedotto un Integer. Se il valore letterale intero non è compreso nell'intervallo del tipo Integer, viene dedotto un Long. Ciò significa che, negli esempi precedenti, i valori letterali numerici 0x9A e 0b10011010 vengono interpretati come interi con segno a 32 bit con un valore di 156, che supera SByte.MaxValue. Per compilare correttamente un codice come questo che assegna un intero non decimale a un SByte, è possibile eseguire una delle operazioni seguenti:
Disabilitare i controlli dei limiti degli interi compilando con l'opzione del compilatore
/removeintchecks.Usare un carattere di tipo per definire in modo esplicito il valore letterale da assegnare a
SByte. L'esempio seguente assegna un valore letterale negativoShorta unSByte. Si noti che, per i numeri negativi, deve essere impostato il bit di ordine superiore della word di ordine superiore del valore letterale numerico. Nel caso del nostro esempio, questo è il bit 15 del valore letteraleShort.Dim sByteValue1 As SByte = &HFF_9As Dim sByteValue2 As SByte = &B1111_1111_1001_1010s Console.WriteLine(sByteValue1) Console.WriteLine(sByteValue2)
Suggerimenti per la programmazione
Conformità a CLS. Il tipo di dati
SBytenon fa parte del Common Language Specification (CLS), pertanto il codice conforme a CLS non può utilizzare un componente che usa tale tipo di dati.Widening. Il tipo di dati
SBytesi allarga aShort,Integer,Long,Decimal,SingleeDouble. Ciò significa che è possibile convertireSBytein uno di questi tipi senza generare un errore System.OverflowException.Caratteri di tipo.
SBytenon ha alcun carattere di tipo letterale o di tipo identificatore.Tipo di Framework. Il tipo corrispondente in .NET Framework è la struttura System.SByte.