uint (Riferimenti per C#)
La parola chiave uint rappresenta un tipo di dati integrale che archivia valori in base alla dimensione e all'intervallo indicati nella tabella seguente.
Digitare |
Intervallo |
Size |
Tipo .NET Framework |
---|---|---|---|
uint |
Da 0 a 4.294.967.295 |
Numero intero senza segno a 32 bit |
Nota Il tipo uint non è conforme a CLS. Utilizzare int quando possibile.
Valori letterali
È possibile dichiarare e inizializzare una variabile di tipo uint come nell'esempio seguente:
uint myUint = 4294967290;
Quando un valore letterale integer non ha alcun suffisso, il tipo è il primo dei seguenti tipi in cui è possibile rappresentarne il valore: int, uint, long, ulong. In questo esempio è uint:
uint uInt1 = 123;
È inoltre possibile utilizzare il suffisso u o U, come illustrato di seguito:
uint uInt2 = 123U;
Quando si utilizza il suffisso U o u, il tipo del valore letterale viene specificato come uint o ulong, a seconda del valore numerico del valore letterale. Di seguito è riportato un esempio.
Console.WriteLine(44U.GetType());
Console.WriteLine(323442434344U.GetType());
In questo codice viene visualizzato System.UInt32, seguito da System.UInt64, rispettivamente i tipi sottostanti di uint e ulong, perché il secondo valore letterale è troppo grande per essere archiviato dal tipo uint.
Conversioni
Si verifica una conversione implicita predefinita da uint in long, ulong, float, double o decimal. Di seguito è riportato un esempio.
float myFloat = 4294967290; // OK: implicit conversion to float
Si verifica una conversione implicita predefinita da byte, ushort o char in uint. In tutti gli altri casi è necessario ricorrere a un cast. Nella seguente istruzione di assegnazione verrà ad esempio generato un errore di compilazione senza un cast:
long aLong = 22;
// Error -- no implicit conversion from long:
uint uInt1 = aLong;
// OK -- explicit conversion:
uint uInt2 = (uint)aLong;
Si noti inoltre che non esiste alcuna conversione implicita dai tipi a virgola mobile a uint. L'istruzione seguente, ad esempio, genera un errore di compilazione, a meno che non venga utilizzato un cast esplicito:
// Error -- no implicit conversion from double:
uint x = 3.0;
// OK -- explicit conversion:
uint y = (uint)3.0;
Per ulteriori informazioni sulle espressioni aritmetiche con tipi a virgola mobile e tipi integrali, vedere float e double.
Per ulteriori informazioni sulle regole di conversione numerica implicita, vedere Tabella delle conversioni numeriche implicite (Riferimenti per C#).
Specifiche del linguaggio C#
Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.
Vedere anche
Riferimenti
Tabella dei tipi integrali (Riferimenti per C#)
Tabella dei tipi incorporati (Riferimenti per C#)
Tabella delle conversioni numeriche implicite (Riferimenti per C#)
Tabella delle conversioni numeriche esplicite (Riferimenti per C#)