Tipo di dati SByte (Visual Basic)

Contiene interi con segno a 8 bit (1 byte) compresi tra -128 e 127.

Commenti

Usare il SByte tipo di dati per contenere valori integer che non richiedono la larghezza completa dei dati di Integer o anche la metà larghezza dei dati di Short. In alcuni casi, Common Language Runtime potrebbe essere in grado di raggruppare strettamente le SByte variabili e risparmiare consumo di memoria.

Il valore predefinito di SByte è 0.

Assegnazioni letterali

È possibile dichiarare e inizializzare una SByte variabile 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 i valori interi uguali a -102 rappresentati come decimali, esadecimali e valori letterali binari vengono assegnati ai SByte valori. Questo esempio richiede la compilazione con l'opzione del /removeintchecks compilatore.

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 usa il prefisso &h o &H per indicare un valore letterale esadecimale, il prefisso &b o per indicare un valore letterale binario e il &o prefisso o &B&O per indicare un valore letterale ottale. I valori letterali decimali non hanno prefissi.

A partire da Visual Basic 2017, è anche possibile usare il carattere di sottolineatura, , 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, è anche possibile usare il carattere di sottolineatura (_) come separatore iniziale tra il prefisso e le cifre esadecimali, binarie o ottali. Ad esempio:

Dim number As SByte = &H_F9

Per usare il carattere di sottolineatura 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 valore Integer . Se il valore letterale integer non è compreso nell'intervallo Integer del tipo, viene dedotto un valore Long . Ciò significa che, negli esempi precedenti, i valori letterali numerici e 0b10011010 vengono interpretati come interi 0x9A con segno a 32 bit con un valore pari a 156, che supera SByte.MaxValue. Per compilare correttamente il codice simile a questo che assegna un intero non decimale a un SByteoggetto , è possibile eseguire una delle operazioni seguenti:

  • Disabilitare i controlli dei limiti interi compilati con l'opzione del /removeintchecks compilatore.

  • Usare un carattere di tipo per definire in modo esplicito il valore letterale che si vuole assegnare a SByte. Nell'esempio seguente viene assegnato un valore letterale Short negativo a un SByteoggetto . Si noti che, per i numeri negativi, è necessario impostare il bit ad ordine elevato della parola di ordine elevato del valore letterale numerico. Nel caso dell'esempio, questo è bit 15 del valore letterale Short .

    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à CLS. Il SByte tipo di dati non fa parte di Common Language Specification (CLS), quindi il codice conforme a CLS non può utilizzare un componente che lo usa.

  • Widening. Il SByte tipo di dati si estende su Short, , DecimalIntegerLong, Single, e Double. Ciò significa che è possibile convertire SByte in uno di questi tipi senza riscontrare un System.OverflowException errore.

  • Caratteri tipo. SByte non ha caratteri di tipo letterale o carattere di tipo identificatore.

  • Tipo di framework. Il tipo corrispondente in .NET Framework è la struttura System.SByte.

Vedi anche