ushort (référence C#)
Le mot clé ushort indique un type intégral ; il est utilisé pour stocker des valeurs comme indiqué dans le tableau ci-dessous.
Type |
Plage |
Taille |
Type .NET Framework |
---|---|---|---|
ushort |
0 à 65 535 |
Entier 16 bits non signé |
Littéraux
Vous pouvez déclarer et initialiser une variable ushort en suivant l'exemple ci-après :
ushort myShort = 65535;
Dans la déclaration précédente, le littéral entier 65535 est implicitement converti de type int en type ushort. Si le littéral entier est en dehors de la plage de valeurs autorisées pour ushort, une erreur de compilation se produit.
Une conversion explicite doit être utilisée lors de l'appel de méthodes surchargées. Prenez l'exemple suivant de deux méthodes surchargées ayant pour paramètres ushort et int :
public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}
Le recours à un cast ushort permet de garantir que le type correct sera appelé, comme indiqué ci-après :
// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);
Conversions
Il y a une conversion implicite prédéfinie de ushort en int, uint, long, ulong, float, double ou décimal.
Une conversion implicite prédéfinie est effectuée du type byte ou char en ushort. Sinon, une conversion explicite doit être utilisée. Prenez l'exemple suivant de deux variables ushort, x et y :
ushort x = 5, y = 12;
L'instruction d'assignation suivante entraîne une erreur de compilation, car l'expression arithmétique située à droite de l'opérateur d'assignation correspond à int par défaut.
ushort z = x + y; // Error: conversion from int to ushort
Pour résoudre ce problème, utilisez une conversion explicite :
ushort z = (ushort)(x + y); // OK: explicit conversion
Il est cependant possible d'utiliser les instructions suivantes dans lesquelles la variable de destination possède une taille de stockage égale ou supérieure :
int m = x + y;
long n = x + y;
En outre, il n'y a pas de conversion implicite des types virgule flottante en type ushort. 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:
ushort x = 3.0;
// OK -- explicit conversion:
ushort y = (ushort)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, voir la Spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.
Voir aussi
Référence
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#)