Académique Documents
Professionnel Documents
Culture Documents
Objectifs:
Comment faire des conversions implicites et explicites entre
différents types de données
Comment créer et utiliser les types enum
Comment créer et utiliser les types struct
Comment créer et utiliser les tableaux
Comment manipuler les strings ou chaînes de caractères
Type de conversion
Implicite
La conversion depuis un type A vers un type B est possible en toutes circonstances, et les
règles de conversion sont assez simples pour faire confiance au compilateur
Explicite
La conversion depuis un type A vers un type B est seulement possible dans certaines
circonstances
Conversion Implicite
Elle ne requiert aucun travail de votre part et pas de codes additionnels. Considérons le code
ci-dessous :
var1 = var2 ;
Cet exemple peut conduire à la conversion implicite du type de var2 vers le type de var1,
cependant si les deux variables sont du même type, aucune conversion implicite n’est requise.
Exemple :
Affichage
On voit dans cet exemple qu’il y a une conversion implicite et que le caractère « a » est
convertit en « 97 »
Conversion explicite
Comme son nom l’indique, une conversion explicite a lieu quand vous demandez
explicitement au compilateur de convertir une valeur depuis un type de donnée vers un autre.
Ces conversions ont besoin de codes extra, et le format de ces codes peuvent varier,
dépendant de la méthode exacte de conversion.
Exemple :
Si nous prenons le dernier exemple, avec types de données comme byte et short, le
compilateur ne pourra pas exécuter le programme.
On a cette erreur qui s’affiche tout en bas :
Pour pouvoir compiler ce code, il nous faut donc une conversion explicite. La méthode la plus
simple pour faire cette conversion dans ce contexte est des caster (convertir) le type « short »
en « byte ». Le casting en gros consiste à forcer la conversion d’un type vers un autre, et il
utilise la syntaxe suivante :
Exemple :
destinationVar = (byte)sourceVar ;
En plus des types de variables simples, le langage C# dispose de trois autres types de
variables complexes qui sont très utiles :
Enumerations
Tous les types de variables que nous avons vus dans ce cours à l’exception du type « string »,
ont tous un ensemble de valeurs autorisées. Par exemple le type « bool » ne peut prendre que
« true » ou « false ».
Il peut arriver que l’on ait besoin d’une variable qui peut prendre une valeur parmi un
ensemble de valeurs fixes. Par exemple on pourrait avoir besoin d’une variable « orientation »
qui peut prendre à un moment donné l’une des valeurs suivantes : nord, sud, est, ou ouest.
Dans une situation comme celle-ci les enumerations peuvent être très utiles.
Elles définissent un type qui peut prendre un ensemble fini de valeurs que vous fournissez. Ce
que l’on a à faire ensuite c’est de créer notre type d’enumeration qui peut prendre l’une des
valeurs que nous définissons.
2. On peut déclarer des variables avec le type que l’on vient de définir
Pour stocker les valeurs contenues dans les enumerations, le type utilisé par défaut est « int ».
On peut cependant changer ce type avec d’autres comme byte, sbyte, short, ushort, uint, long
et ulong.
Déclaration du type de stockage :
Structs
Les structures sont composées de plusieurs pièces de données, qui peuvent être de types
différents. Supposons que nous voulons définir une route pour atteindre une destination en
partant d’un point A, cette route comprend une direction et une distance en kilomètres.
Afin de permettre au code qui appelle la structure d’accéder à ses données on utilise le mot clé
« public » à la place d’ « accessibility »
Exemple :
Une fois que l’on a défini notre structure, on déclare une variable du type de la structure
Exemple :
Arrays (les tableaux)
Tous les types que nous avons vu plus loin ont quelque chose en commun : chacun d’eux
stocke une seule valeur (ou un seul ensemble de valeurs dans le cas des structures). Parfois, il
peut arriver que l’on veuille stocker plusieurs données, cela n’est pas trop convenable.
Vous pouvez vouloir stocker plusieurs valeurs d’un même type à un moment donné, sans
vouloir déclarer une variable pour chaque valeur.
Par exemple, on voudrait stocker les différents noms des étudiants de LP2, on peut le faire
ainsi :
L’alternative est d’utiliser les tableaux. Le tableau comprend des indexes représentant les
valeurs contenues dans ce dernier.
Exemple : friendNames[index]
// On initialise
Syntaxe :
Exemple :
Tableaux Multidimensionnels
Un tableau multidimensionnel est un tableau qui utilise plusieurs indices pour accéder à ses
éléments.
Par exemple, supposons que l’on veuille déterminer la hauteur d’une montagne par rapport à
une position mesurée. La position est définit par les cordonnées x et y.
On veut utiliser x et y comme indices de telle sorte que l’on ait un tableau qui stocke la
hauteur grâce à la paire x et y.
3 : représente x le n° de la ligne
Utilisation de foreach :
Ex :
static void Main(string[] args)
{
double[,] hillheight = new double[3, 4] {{1,2,3,4},{2,3,4,5},{3,4,5,6} };
foreach (double height in hillheight)
{
Console.WriteLine("{0}", height);
}
Console.ReadKey();
}