En langage C#, on a deux types : les types « valeur » et types « référence ». Il existe un troisième type « pointeur » qui est très peu utilisé. Les types de pointeurs ne peuvent être utilisés qu’en mode non sécurisé. Les variables qui sont de type valeur stockent des données et celles qui sont de type de référence stockent des références aux données réelles.
C# fournit un ensemble de type prédéfinis: int, byte, char, string…Mais on peut aussi définir nos propres types.
Table of Contents
Types valeurs et références
Le type valeur contient des données. Il est principalement représenté par :
- Primitives : int , float
- Enumération : enum
- Structures : struct
Le type référence contient des références vers des objects.
- Classes : class
- Interfaces: interfaces
- Tableau : String []
- Delegates :delegate
- Chaînes : string
- Racine : objet
Boxing et Unboxing
Boxing est le processus de conversion d’un type de valeur en type référence (objet) ou en tout type d’interface implémenté par ce type de valeur. L’opération inverse, c’est-à-dire convertir un objet en type valeur, s’appelle « unboxing ». Cette opération doit être explicitée, par l’utilisation d’un cast .
Exemple Boxing
int i = 222;
object x = i; // boxing
Exemple UnBoxing
x = 1111;
i= (int)x;
// unboxing;
Le concept de Boxing et Unboxing est à la base de la vue unifiée C # du système de types dans laquelle une valeur de n’importe quel type peut être traitée en tant qu’objet.
Les types définis par l’utilisateur
On peut définir nos propres types de variables :
- Énumérations : enum
- Tableaux (Arrays) : int[][], string[]
- Interface: interface
- Type référence : class
- Type valeur : struct
- Pointeur de fonction : delegate
Les types prédéfinis
.NET offre un certain nombre de types prédéfinis
- Le type entier
- Les autres types numériques