boolbytechardecimaldoubleenumfloatintlongsbyteshortstructuintulongushort
Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
int peut contenir la valeur 42.
Ce type s'oppose au type référence, qui contient une référence à une instance du type, également appelée objet.
Lorsque vous affectez une nouvelle valeur à une variable d'un type valeur, cette valeur est copiée.
Si vous affectez une nouvelle valeur à une variable d'un type référence, la référence est copiée, et non l'objet lui-même.System.ValueType.structs peuvent implémenter des interfaces.null par défaut.
Toutefois, les variables des types Nullable correspondants peuvent être null.byte désigne un type intégral qui stocke des valeurs comme indiqué dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
byte |
0 255 |
Entier 8 bits signé | System.Byte |
byte en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type byte (autrement dit, s'il est inférieur à Byte.MinValue ou supérieur à Byte.MaxValue),
une erreur de compilation se produit. Dans l'exemple suivant, les entiers égaux à 201 représentés comme des littéraux décimaux,
hexadécimaux et binaires sont implicitement convertis des valeurs int en byte.0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire.
Les littéraux décimaux n'ont pas de préfixe.
char permet de déclarer une instance de la structure System.Char utilisée par le .NET Framework pour représenter un caractère Unicode.
La valeur d'un objet Char est une valeur numérique 16 bits (ordinale).Unicode sont utilisés pour représenter la plupart des langues écrites dans le monde.| Type | Plage | Size | Type .NET |
|---|---|---|---|
char |
U+0000 U+FFFF |
Caractère Unicode 16 bits | System.Char |
char en ushort, int, uint, long, ulong, float, double ou decimal.
Par contre, vous ne pouvez pas convertir implicitement d'autres types en type char.
Le type System.Char fournit plusieurs méthodes statiques à utiliser avec des valeurs char.
decimal indique un type de données 128 bits.
Par rapport à d'autres types à virgule flottante, le type decimal fournit une plus grande précision et une plage de valeurs plus réduite;
il est donc particulièrement approprié aux calculs financiers et monétaires.
Le tableau suivant indique la plage de valeurs approximative et la précision fournies par le type decimal.| Type | Plage | Size | Type .NET |
|---|---|---|---|
decimal |
±1,0 x 10-28 ±7,9228 x 1028 |
28-29 chiffres significatifs | System.Decimal |
decimal est 0m.decimal,
utilisez le suffixe m ou M, comme indiqué ci-après :m n'est pas spécifié, le nombre est considéré comme une valeur de type double et génère une erreur du compilateur.decimal et ont pour résultat une valeur de type decimal.
Par conséquent, vous pouvez initialiser une variable de type decimal avec un littéral d'entier, sans utiliser de suffixe, par exemple :decimal et des types numériques intégraux.
En revanche, si vous combinez le type decimal avec les autres types virgule flottante sans spécifier de cast, une erreur de compilation se produit.String.Format,
ou de la méthode Console.Write, qui appelle String.Format().
Le format monétaire est spécifié à l'aide du format de chaîne monétaire standard "C" ou "c",
comme le montre l'exemple ci-dessous. x est arrondie, car le nombre de décimales excède 0,99.
La variable y, représentant le nombre maximal exact de chiffres, est affichée dans le format correct.double désigne un type simple qui stocke des valeurs à virgule flottante de 64 bits.| Type | Plage | Size | Type .NET |
|---|---|---|---|
double |
±5,0 x 10-324 ±1,7 x 10308 |
~15-17 chiffres | System.Double |
double.
Toutefois, si vous souhaitez qu'un nombre entier soit traité comme double, utilisez le suffixe d ou D, par exemple :double, l'expression prend la valeur double, ou bool dans les comparaisons relationnelles et les comparaisons d'égalité.double, elle prend la valeur float, ou bool dans les comparaisons relationnelles et les comparaisons d'égalité.int, un short, un float et un double sont ajoutés pour donner un résultat double.enum est utilisé pour déclarer une énumération.
Il s'agit d'un type distinct qui se compose d'un ensemble de constantes nommées, appelé liste d'énumérateurs.classe ou un struct.0 et chaque énumérateur successif est augmenté de 1.
Par exemple, dans l'énumération suivante, Sat est 0, Sun est 1, Mon est 2, et ainsi de suite.Day, est déclarée.
Deux énumérateurs sont explicitement convertis en entiers et affectés à des variables entières.
float désigne un type simple qui stocke des valeurs à virgule flottante de 32 bits.float.| Type | Plage | Size | Type .NET |
|---|---|---|---|
float |
±1,5 x 10-45 ±3,4 x 1038 |
~6-9 chiffres | System.Single |
double.
Par conséquent, pour initialiser une variable de type float, utilisez le suffixe f ou F, comme dans l'exemple suivant :double dans une variable float.double, l'expression prend la valeur double, ou bool dans les comparaisons relationnelles ou les comparaisons d'égalité.double dans l'expression, elle prend la valeur float, ou bool dans les comparaisons relationnelles ou les comparaisons d'égalité.int, un short et un float sont inclus dans une expression mathématique produisant un résultat float.
(N'oubliez pas que float est un alias du type System.Single.) Notez qu'il n'y a aucune valeur double dans l'expression.
int désigne un type intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
int |
-2,147,483,648 2,147,483,647 |
Entier 32 bits signé | System.Int32 |
int en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type int
(autrement dit, s'il est inférieur à Int32.MinValue ou supérieur à Int32.MaxValue), une erreur de compilation se produit.int.0x ou 0X pour désigner un littéral hexadécimal, et le préfixe 0b ou 0B pour désigner un littéral binaire.
Les littéraux décimaux n'ont pas de préfixe.int en long, float, double ou decimal. Par exemple :sbyte, byte, short, ushort ou char en int.
Par exemple, l'instruction d'assignation suivante génère une erreur de compilation sans cast :int.
Par exemple, l'instruction suivante génère une erreur du compilateur à moins qu'un cast explicite soit utilisé :
long désigne un type intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
long |
-9 223 372 036 854 775 808 9 223 372 036 854 775 807 |
Entier 64 bits signé | System.Int64 |
long en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).long.0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire.
Les littéraux décimaux n'ont pas de préfixe.
long.
L'exemple suivant utilise le suffixe L pour désigner un entier long :
"l" comme suffixe.
Ceci génère cependant un avertissement du compilateur, car la lettre "l" peut être facilement confondue avec le chiffre "1".
Utilisez "L" pour plus de clarté.
"L", le type du littéral entier est déterminé comme étant long ou ulong, en fonction de sa taille.
Dans ce cas, le type est long, car le littéral est inférieur à la plage de ulong.intuintlongulongfloat, double ou decimal.
Dans le cas contraire, vous devez utiliser un cast.
Par exemple, l'instruction suivante génère une erreur de compilation sans un cast explicite :sbyte, byte, short, ushort, int, uint ou char vers long.
Notez aussi qu'il n'existe pas de conversion implicite des types virgule flottante vers long.
Par exemple, l'instruction suivante génère une erreur du compilateur, sauf si vous utilisez un cast explicite :sbyte désigne un type intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.
| Type | Plage | Size | Type .NET |
|---|---|---|---|
sbyte |
-128 127 |
Entier 8 bits signé | System.SByte |
sbyte en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Dans l'exemple suivant, les entiers égaux à -102 représentés comme des littéraux décimaux,
hexadécimaux et binaires sont convertis à partir de valeurs int en valeurs sbyte.
0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire.
Les littéraux décimaux n'ont pas de préfixe.
sbyte en short, int, long, float, double ou decimal.
Vous ne pouvez pas convertir implicitement des types numériques non littéraux de taille de stockage supérieure à sbyte
Considérons, par exemple, les deux variables sbyte x et y suivantes :int par défaut.sbyte.
Par exemple, l'instruction suivante génère une erreur du compilateur,
sauf si vous utilisez un cast explicite :short désigne un type de données intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
short |
-32 768 32 767 |
Entier 16 bits signé | System.Int16 |
short en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type short (autrement dit, s'il est inférieur à Int16.MinValue ou supérieur à Int16.MaxValue),
une erreur de compilation se produit.0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire.
Les littéraux décimaux n'ont pas de préfixe.
short en int, long, float, double ou decimal.
Vous ne pouvez pas convertir implicitement des types numériques non littéraux de taille de stockage supérieure à short.
Prenez l'exemple des deux variables short x et y suivantes :
struct est un type valeur utilisé pour encapsuler de petits groupes de variables liées, par exemple les coordonnées d'un rectangle ou
les caractéristiques d'un élément dans un inventaire. L'exemple suivant illustre une déclaration struct simple.uint désigne un type intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
uint |
0 4 294 967 295 |
Entier 32 bits signé | System.UInt32 |
uint n'est pas conforme CLS. Utilisez int autant que possible.uint en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type uint (autrement dit, s'il est inférieur à UInt32.MinValue ou supérieur à UInt32.MaxValue), une erreur de compilation se produit.
Dans l'exemple suivant, les entiers égaux à 3 000 000 000 représentés comme des littéraux décimaux, hexadécimaux et binaires sont assignés aux valeurs uint.
0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire. Les littéraux décimaux n'ont pas de préfixe.
uint en long, ulong, float, double et decimal. Par exemple :ulong désigne un type intégral qui stocke des valeurs en fonction de la taille et de la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
ulong |
0 18 446 744 073 709 551 615 |
Entier 64 bits non signé | System.UInt64 |
ulong en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type ulong (autrement dit, s'il est inférieur à UInt64.MinValue ou supérieur à UInt64.MaxValue),
une erreur de compilation se produit. Dans l'exemple suivant, les entiers égaux à 7 934 076 125 représentés comme des littéraux décimaux, hexadécimaux
et binaires sont assignés aux valeurs ulong.0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire. Les littéraux décimaux n'ont pas de préfixe.
ulong en float, double ou decimal.ulong en un type intégral.
Par exemple, l'instruction suivante génère une erreur de compilation sans cast explicite :byte, ushort, uint ou char en ulong.ulong.
Par exemple, l'instruction suivante génère une erreur du compilateur, sauf si vous utilisez un cast explicite :ushort indique un type de données intégral qui stocke des valeurs selon la taille et la plage indiquées dans le tableau suivant.| Type | Plage | Size | Type .NET |
|---|---|---|---|
ushort |
0 65 535 |
Entier 16 bits non signé | System.UInt16 |
ushort en lui assignant un littéral décimal, hexadécimal ou binaire (à compter de C# 7.0).
Si le littéral entier est en dehors de la plage autorisée pour le type ushort (autrement dit, s'il est inférieur à UInt16.MinValue ou supérieur à UInt16.MaxValue), une erreur de compilation se produit.ushort.0x ou 0X pour désigner un littéral hexadécimal,
et le préfixe 0b ou 0B pour désigner un littéral binaire. Les littéraux décimaux n'ont pas de préfixe.
int, uint, long, ulong, float, double ou decimal.byte ou char en ushort.
Sinon, vous devez utiliser un cast pour effectuer une conversion explicite.
Considérons, par exemple, les deux variables ushort x et y suivantes :ushort.
Par exemple, l'instruction suivante génère une erreur du compilateur, sauf si vous utilisez un cast explicite :