Types de données C#



En C#, les variables sont divisées selon les types suivants :

  • Types de valeur (Types de valeur)

  • Types de référence ( Types de référence)

  • Types de pointeur (Types de pointeur)

Types de valeur (Types de valeur)

Les variables de type valeur peuvent être attribuées directement à une valeur. Ils sont dérivés de la classe System.ValueType.

Les types de valeurs contiennent directement des données. Par exemple, int, char et float stockent respectivement des nombres, des lettres et des nombres à virgule flottante. Lorsque vous déclarez un type int, le système alloue de la mémoire pour stocker la valeur.

Le tableau suivant répertorie les types de valeurs disponibles en C# 2010 :

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff''
decimal128 位精确的十进制值,28-29 有效位数(-7.9 x 1028 到 7.9 x 1028) / 100 到 280.0M
double64 位双精度浮点型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0D
float32 位单精度浮点型-3.4 x 1038 到 + 3.4 x 10380.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-923,372,036,854,775,808 到 9,223,372,036,854,775,8070L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

Pour obtenir la taille exacte d'un type ou d'une variable sur une plateforme spécifique, vous pouvez utiliser la méthode sizeof. L'expression sizeof(type) donne la taille de stockage en octets de l'objet ou du type. L'exemple suivant obtient la taille de stockage de type int sur n'importe quelle machine :

namespace DataTypeApplication
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Taille de int : {0}", sizeof(int));
Console.ReadLine();
}
}
}

Lorsque le code ci-dessus est compilé et exécuté, il produira les résultats suivants :

Taille de l'int : 4

Types de référence

Les types de référence ne contiennent pas les données réelles stockées dans la variable, mais ils contiennent une référence à la variable.

En d’autres termes, ils font référence à un emplacement mémoire. Lors de l'utilisation de plusieurs variables, un type référence peut pointer vers un emplacement mémoire. Si les données d'un emplacement mémoire sont modifiées par une variable, les autres variables reflètent automatiquement ce changement de valeur. Les types de référence intégrés sont : objet, dynamique et chaîne.

Type d'objet

Le type d'objet est la classe de base ultime pour tous les types de données dans le système de types communs C# (CTS). Object est un alias pour la classe System.Object. Ainsi, le type Objet peut se voir attribuer une valeur de tout autre type (type valeur, type référence, type prédéfini ou type défini par l'utilisateur). Cependant, avant d'attribuer la valeur, une conversion de type est requise.

Lorsqu'un type valeur est converti en type objet, cela s'appelle boxing ; en revanche, lorsqu'un type d'objet est converti en type valeur, cela s'appelle unboxing.

object obj;
obj = 100; // Ceci est de la boxe

Type dynamique

Vous pouvez stocker n'importe quel type La valeur de est dans la variable de type de données dynamique. La vérification du type de ces variables a lieu au moment de l'exécution.

Syntaxe de déclaration des types dynamiques :

dynamic <variable_name> = value;

Par exemple :

dynamique d = 20;

Les types dynamiques sont similaires aux types d'objet, mais la vérification de type des variables de type d'objet a lieu au moment de la compilation, tandis que la vérification de type des variables de type dynamique a lieu au moment de l'exécution.

Type chaîne

Le type chaîne vous permet d'attribuer n'importe quelle valeur de chaîne à une variable. Le type String est un alias de la classe System.String. Il est dérivé du type Objet. Les valeurs de type String peuvent être attribuées sous deux formes : guillemets et @quotes.

Par exemple :

String str = "w3cschool.cc";

Une chaîne @quote :

@"w3cschool.cc";

Chaîne C# Vous pouvez ajouter @ devant une chaîne (appelée "chaîne textuelle") pour traiter le caractère d'échappement () comme un caractère ordinaire, tel que :

string str = @"C:Windows";

est équivalent à :

string str = "C:\Windows" ;

@ Vous pouvez arbitrairement interrompre les nouvelles lignes dans la chaîne. Les caractères de nouvelle ligne et les espaces en retrait sont inclus dans la longueur de la chaîne.

string str = @"<script type=""text/javascript"">
  <!--
 -->
 </script> ;";

Les types de référence définis par l'utilisateur incluent : classe, interface ou délégué. Nous discuterons de ces types dans les prochains chapitres.

Types de pointeur

Les variables de type pointeur stockent un autre type d'adresse mémoire. Les pointeurs en C# ont les mêmes fonctionnalités que les pointeurs en C ou C++.

La syntaxe de déclaration des types de pointeurs :

type* identifier;

Par exemple :

char* cptr ;
int* iptr;

Nous discuterons des types de pointeurs dans le chapitre "Code non sécurisé".