C# : types et instructions de base

ovarieswhynotΛογισμικό & κατασκευή λογ/κού

5 Ιουλ 2012 (πριν από 4 χρόνια και 11 μήνες)

270 εμφανίσεις

1
C# : types et instructions de base
Ce chapitre est consacré à l’apprentissage du langage C# mais sans introduire encore la notion de
classe ou des notions plus avancées comme les délégués. La lecture de ce chapitre, et de cet ouvrage
en général, suppose que vous n’êtes pas néophyte en matière de programmation : les notions de variable,
de boucle et de fonction mais aussi de compilation sont supposées connues.
Le mode console est essentiellement utilisé dans ce chapitre. Même si ce mode vous paraît désuet,
prenez la peine de l’utiliser pour l’apprentissage. À partir du chapitre 10, nous passerons au mode
« application Windows ». Pour le moment, ne vous préoccupez pas non plus du look ni même (trop)
des entrées/sorties. Juste un peu de patience, fort bénéfique d’ailleurs.
Comme annoncé dans l’introduction, chaque version du langage a apporté des extensions.
C# version 2 a apporté peu de modifications en ce qui concerne les bases, hors programmation orientée
objet. Cependant, depuis cette version, il est possible (voir section 1.11) de créer des programmes,
s’exécutant même en mode console, qui sont (un peu) moins rébarbatifs que par le passé : couleurs,
positionnement de curseur, taille de fenêtre et libellé de titre.
C# version 3 n’a pas apporté de changements concernant ce chapitre. En revanche, C# version 4 a
introduit les arguments par défaut ainsi que les arguments nommés lors des appels de fonction (voir
la fin de la section 1.15).
1.1 Premiers pas en C#
1.1.1 Premier programme en C#
Sans nous attarder sur les détails, nous allons écrire un premier programme en C#, comme on le fait
depuis la nuit des temps en informatique, pour les raisons que nous venons d’énoncer…
Pour créer un programme en mode console, lancez Visual Studio. La version Express, librement télé-
chargeable, convient très bien. Exécutez le menu
Fichier

Æ

Nouveau

Æ

Projet

Æ

Application

console
.
LivreC-Net.book Page 17 Jeudi, 3. septembre 2009 10:58 10
C# et .NET versions 1 à 4
18
Choisissez un répertoire où sera créé le projet (champ
Emplacement
) et donnez un nom au projet
(champ
Nom
). Cochez éventuellement la case
Créer

le

répertoire

pour

la

solution
. Un projet
regroupe tous les fichiers nécessaires à la création d’une application (pour le moment, en ce qui nous
concerne, essentiellement le fichier d’extension
cs
contenant le code C#). Une solution regroupe
plusieurs projets. Pour le moment et pour quelque temps encore, notre solution ne contiendra qu’un
seul projet.
Soit
Prog1
le nom de l’application (champ
Nom
). On confirme évidemment la création du projet par
OK. Le fichier
Program.cs
est alors créé dans le projet. Simplifions-le et ne gardons que les éléments
suivants (nous avons supprimé les lignes avec
namespace
et
using
, nous reviendrons bien sûr sur le
sujet) :
Au chapitre 7, nous montrerons comment créer, compiler et mettre au point les programmes. Mais
disons déjà que la combinaison
CTRL+L
permet de supprimer la ligne sous le curseur. Nul besoin
d’apprendre longuement les commandes élémentaires d’un éditeur de texte (celui intégré à Visual
Studio) à des gens qui s’intéressent au C#.
Dans ce chapitre et le suivant, nous nous concentrerons sur l’aspect programmation. Lorsqu’on
demande à Visual Studio de créer une application console, il crée un programme apparemment
plus complexe, avec un espace de noms (namespace en anglais) qui entoure tout ce que nous
avons écrit.
On retrouve la fonction
main
du C/C++ qui est le point d’entrée du programme. En C#, elle doit
cependant s’appeler
Main
et non
main
. C#, comme C/C++, distingue en effet les majuscules des
minuscules. En C#,
Main
doit être contenu dans une classe (peu importe son nom, ici
Program
) et être
qualifié de
static
. L’explication sur les mots réservés
class
et
static
viendra plus tard (voir chapi-
tre 2) mais les programmeurs C++ devraient déjà se sentir en pays de connaissance.
Ce premier programme ne fait encore rien. Il démarre et se termine aussitôt. Nous compléterons
progressivement ce programme.
Pour l’exécuter (ce qui est inutile encore pour le moment), activez le menu
Déboguer

Æ

Démarrer

le
débogage
. Le raccourci pour cette commande est la touche de fonction F5. On peut aussi exécuter le
programme pas à pas (touche F10), car le débogueur s’arrête à chaque ligne vous permettant ainsi
d’examiner le contenu des variables.
Comme en C/C++, la fonction
Main
pourrait renvoyer un entier, ce qui s’avère utile dans le cas où un
programme lance l’exécution d’un autre programme (celui-ci, en dernière instruction
return
, peut en
effet renvoyer un code de retour à son « père »). Le programme s’écrit alors :
Premier programme en C#
Ex1.cs
class Program
{
static void Main()
{
}
}
LivreC-Net.book Page 18 Jeudi, 3. septembre 2009 10:58 10
C# : types et instructions de base
C
HAPITRE
1
19
Nous avons ici renvoyé la valeur zéro mais n’importe quelle valeur entière pourrait être renvoyée.
C’est par cette valeur que le programme fils renvoie une information au programme père. Il s’agit là
d’une technique, certes élémentaire et ancestrale, de communication entre programmes. La significa-
tion de la valeur renvoyée par un programme dépend uniquement de celui-ci. Au chapitre 9, nous
verrons comment un programme père peut lancer l’exécution d’un programme fils, et récupérer la
valeur renvoyée par ce dernier.
Main
pourrait aussi accepter des arguments, qu’on appelle les arguments de la ligne de commande.
Main
s’écrirait alors :
Nous apprendrons plus loin à retrouver les arguments de la ligne de commande. Pour les program-
meurs en C/C++, signalons déjà que ces arguments se trouvent, pour notre facilité, dans un tableau de
chaînes de caractères et non plus dans un tableau de pointeurs sur des chaînes de caractères comme
c’est le cas en C/C++. Tout au long de l’apprentissage du C#, nous verrons que celui-ci va dans le
sens de la simplicité et de la lisibilité, sans aucune perte de puissance du langage.
La description (qu’on appelle la définition) de la classe pourrait être terminée par un point-virgule, ce
qui est d’ailleurs obligatoire en C++. En C#, on omet généralement le point-virgule en fin de définition.
Il reste néanmoins obligatoire après une déclaration de variable ou une instruction.
Le fichier programme (le texte, encore appelé « source », au masculin dans le jargon des informati-
ciens) peut porter n’importe quel nom, par exemple
Prog.cs
. Le nom de la classe principale est
souvent donné au fichier programme, mais cela ne constitue pas une obligation. Après compilation,
un fichier
Prog1.exe
est directement créé dans le sous-répertoire
bin/Debug
de l’application (voir plus
haut comment nous avons créé notre application et les noms que nous avons utilisés). À la
section 7.4, nous analyserons le contenu de ce fichier exécutable.
Bien sûr, ce programme ne fait rien du tout puisqu’il ne contient encore aucune instruction. Complé-
tons-le.
Programme renvoyant une valeur
Ex2.cs
class Program
{
static int Main()
{
return 0;
}
}
Programme acceptant des arguments
Ex3.cs
class Program
{
static void Main(string[] args)
{
}
}
LivreC-Net.book Page 19 Jeudi, 3. septembre 2009 10:58 10