Condividi tramite


uint (Riferimenti per C#)

Aggiornamento: novembre 2007

La parola chiave uint rappresenta un tipo di dati integrale che archivia valori in base alla dimensione e all'intervallo indicati nella tabella seguente.

Type

Range

Size

Tipo .NET Framework

uint

Da 0 a 4.294.967.295

Numero intero senza segno a 32 bit

System.UInt32

Nota   Il tipo uint non è compatibile con 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. 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 le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 1.3 Tipi e variabili

  • 4.1.5 Tipi integrali

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Parole chiave di C#

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#)

UInt32

Altre risorse

Riferimenti per C#