Sommaire

Les conversions entre types

Le C# est un langage fortement typé ; la conversion d’un type à un autre n’est donc pas en théorie toujours possible. La conversion de types peut néanmoins et dans une certaine mesure se faire dans ce langage. On distingue en général les conversions suivantes :

1.

les conversions implicites

2.

les conversions explicites

3.

les conversions définies par l’utilisateur

4.

les conversions à l’aide d’une classe helper

1. Conversions implicites

Une conversion implicite s’envisage comme une opération qui ne possède pas de syntaxe propre. Par exemple en passant d’un type numérique à un autre. Si j’ai un entier par exemple, je n’ai aucun souci si je le stocke dans un type flottant ou un double.

int monEntier = 5;  
double monDouble = monEntier;

En l’occurrence, passer d’un entier à un type décimal n’implique aucune perte de précision. Faire l’inverse a plus de conséquences et c’est justement le propos de la section suivante.

On peut évidemment le faire avec un type référence : on convertira alors un type référence donné en un type de base.

2. Conversions explicites

Pour ce faire, on utilise une syntaxe relative à ce qui se nomme cast ou casting : on fait précéder la valeur à convertir du type cible entre parenthèses. Par exemple :

double pi = 3.14; ...