uint (Référence C#)

Mise à jour : novembre 2007

Le mot clé uint désigne un type intégral qui stocke des valeurs comme indiqué dans le tableau ci-dessous.

Type

Portée

Taille

Type .NET Framework

uint

0 à 4 294 967 295

Entier 32 bits non signé

System.UInt32

Remarque   Le type uint n'est pas conforme CLS. Utilisez int chaque fois que cela est possible.

Littéraux

Vous pouvez déclarer et initialiser une variable uint en suivant l'exemple ci-après :

uint myUint = 4294967290;

Lorsqu'un littéral entier n'a aucun suffixe, son type est le premier des types dans lesquels sa valeur peut être représentée : int, uint, long, ulong. Dans cet exemple, le littéral entier est de type uint.

uint uInt1 = 123;

Vous pouvez aussi utiliser le suffixe u ou U, comme suit :

uint uInt2 = 123U;

Lorsque vous utilisez le suffixe U ou u, le type du littéral est déterminé pour être uint ou ulong d'après la valeur numérique du littéral. Par exemple :

Console.WriteLine(44U.GetType());
Console.WriteLine(323442434344U.GetType());

Ce code affiche System.UInt32, suivi de System.UInt64 (les types sous-jacents pour uint et ulong respectivement) parce que le deuxième littéral est trop grand pour être stocké par le type uint.

Conversions

Il y a une conversion implicite prédéfinie de uint en long, ulong, float, double ou decimal. Par exemple :

float myFloat = 4294967290;   // OK: implicit conversion to float

Une conversion implicite prédéfinie est effectuée entre le type byte, ushort ou char en uint. Sinon, vous devez utiliser une conversion explicite. Par exemple, l'instruction d'assignation suivante produit une erreur de compilation sans cast :

long aLong = 22;
// Error -- no implicit conversion from long:
uint uInt1 = aLong; 
// OK -- explicit conversion:
uint uInt2 = (uint)aLong;

En outre, il n'y a pas de conversion implicite des types virgule flottante en type uint. Par exemple, l'instruction suivante génère une erreur de compilation si aucune conversion explicite n'est spécifiée :

// Error -- no implicit conversion from double:
uint x = 3.0;
// OK -- explicit conversion:
uint y = (uint)3.0; 

Pour plus d'informations sur les expressions arithmétiques dans lesquelles coexistent des types virgule flottante et des types intégraux, consultez float et double.

Pour plus d'informations sur les règles de conversion numérique implicite, consultez Tableau des conversions numériques implicites (Référence C#).

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 1.3 Types et variables

  • 4.1.5 Types intégraux

Voir aussi

Concepts

Guide de programmation C#

Référence

Mots clés C#

Tableau des types intégraux (Référence C#)

Tableau des types intégrés (Référence C#)

Tableau des conversions numériques implicites (Référence C#)

Tableau des conversions numériques explicites (Référence C#)

UInt32

Autres ressources

Référence C#