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 senza segno a 32 bit (4 byte) con valori compresi tra 0 e 4.294.967.295.
Osservazioni:
Il tipo di dati UInteger fornisce il valore senza segno più elevato nella larghezza dei dati più efficiente.
Il valore predefinito di UInteger è 0.
Assegnazioni di valori letterali
È possibile dichiarare e inizializzare una variabile UInteger assegnandole un valore letterale decimale, un valore letterale esadecimale, un valore letterale ottale o (a partire da Visual Basic 2017) un valore letterale binario. Se il valore letterale integer è esterno all'intervallo di UInteger, vale a dire se è minore di UInt32.MinValue o maggiore di UInt32.MaxValue, si verifica un errore di compilazione.
Nell'esempio seguente, i valori interi uguali a 3.000.000.000 rappresentati come valori letterali decimali, esadecimali o binari vengono assegnati a valori 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
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 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
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 UInteger = &H_0F8C_0326
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.
I valori letterali numerici possono includere anche il UIui o per indicare il tipo di dati UInteger, come illustrato nell'esempio seguente.
Dim number = &H_0FAC_14D7ui
Suggerimenti per la programmazione
I tipi di dati UInteger e Integer offrono prestazioni ottimali su un processore a 32 bit, perché i tipi Integer più piccoli (UShort, Short, Byte e SByte), anche se utilizzano meno bit, richiedono più tempo per caricare, archiviare e recuperare.
Numeri negativi. Poiché
UIntegerè un tipo senza segno, non può rappresentare un numero negativo. Se si utilizza l'operatore meno unario (-) in un'espressione che restituisce il tipoUInteger, Visual Basic converte prima l'espressione inLong.Conformità a CLS. Il tipo di dati
UIntegernon fa parte del Common Language Specification (CLS), pertanto il codice conforme a CLS non può utilizzare un componente che usa tale tipo di dati.Considerazioni sull'interoperabilità. Se si interagisce con i componenti non scritti per .NET Framework, ad esempio oggetti Automation o COM, tenere presente che i tipi come
uintpossono avere una larghezza dei dati diversa (16 bit) in altri ambienti. Se si passa un argomento a 16 bit a un componente di questo tipo, è necessario dichiararlo comeUShortanziché comeUIntegernel codice Visual Basic gestito.Widening. Il tipo di dati
UIntegersi allarga aLong,ULong,Decimal,SingleeDouble. Ciò significa che è possibile convertireUIntegerin uno di questi tipi senza generare un errore System.OverflowException.Caratteri di tipo. Se si accodano i caratteri di tipo letterale
UIa un valore letterale, si forza la conversione di tale valore nel tipo di datiUInteger.UIntegernon ha alcun carattere di tipo identificatore.Tipo di Framework. Il tipo corrispondente in .NET Framework è la struttura System.UInt32.