Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 10 et Visual Studio Code
  3. Premier programme
Extrait - C# 10 et Visual Studio Code Les fondamentaux du langage
Extraits du livre
C# 10 et Visual Studio Code Les fondamentaux du langage
2 avis
Revenir à la page d'achat du livre

Premier programme

Créer sa première application C#

L’heure est maintenant venue de passer à la pratique et de découvrir les bases du C# au travers de la création du tout premier programme. Comme cela a été dit en introduction, pour ne pas nous embarrasser de contraintes propres à un environnement spécifique, nous allons créer notre première application comme étant une application console. Nous étudierons d’autres formes d’applications plus loin dans cet ouvrage.

Étant donné que nous avons fait le choix d’utiliser Visual Studio Code, il est nécessaire de passer par la ligne de commande afin de créer une nouvelle application. 

Afin de créer l’application, il faut suivre les étapes suivantes :

 Créez un nouveau dossier quelque part sur l’ordinateur (sur le bureau, par exemple, ou dans un dossier où sont stockés vos documents) et nommez-le "MaPremiereApplication".

 Rendez-vous dans ce dossier et ouvrez Visual Studio Code à la racine de ce dossier (sous Windows, faites un clic droit dans l’explorateur puis Ouvrir avec Visual Studio Code, sous macOS ou Linux, rendez-vous dans le dossier avec un terminal et tapez la commande "code .").

 Une fois que le dossier est ouvert dans Visual Studio Code, ouvrez un nouveau terminal directement intégré...

Comprendre et écrire du code C#

Notre programme de démonstration est très simple car il représente le programme test type traditionnellement exécuté lorsque l’on apprend un langage : afficher la phrase "Hello World!".

Étant donné que notre application est une application console, nous choisissons de l’afficher directement au sein de la console. C’est pour cela que la ligne 2 contient cette instruction :

Console.WriteLine("Hello World!"); 

La première chose assez facile à identifier est la présence obligatoire du caractère ";" à la fin de chaque instruction. En C#, il est nécessaire de séparer les instructions par un point-virgule. Cela signifie par ailleurs que, tant que ce caractère n’est pas rencontré par le compilateur, il lit les instructions de ligne en ligne jusqu’à le trouver (il est donc possible d’écrire son code sur plusieurs lignes).

Ici, sous réserve que vous parliez un petit peu anglais, l’instruction est assez simple. On se sert de la console pour écrire une ligne, et on indique entre parenthèses ce que l’on souhaite afficher sur cette ligne dans la console. Cette façon de procéder s’appelle le passage de paramètres à une fonction.

Concrètement, si on dissèque totalement cette instruction :

  • On récupère l’objet Console.

  • On appelle la méthode WriteLine sur l’objet Console.

  • On passe en paramètre à la méthode une chaîne de caractères qui contient "Hello World!".

Nous rencontrons plusieurs notions importantes, qui s’éclairciront au fil de l’ouvrage. Mais cette instruction consiste simplement en l’appel d’une méthode sur un objet déjà existant. Vous constaterez également qu’il n’y a pas, dans votre fichier, de déclaration de la classe Console. Cela est dû au fait que cette dernière est définie dans l’espace de noms System, et qu’en début de page, cet espace de noms est importé grâce à une instruction using.

Autre élément important : pour appeler une méthode sur un objet, on utilise toujours le point...

Analyser la structure d’un projet C#

Un fichier de code C# peut contenir des instructions diverses et variées. Nous allons dans un premier temps nous intéresser à ce qui fait la structure d’un fichier C# classique, qui ne peut pas être constaté depuis notre projet d’exemple, car ce dernier utilise le modèle d’application simplifié.

C# 9 a largement contribué à simplifier l’écriture de programmes simples, d’où le fait que le programme généré au début de cet ouvrage ne contient qu’une seule instruction. Afin de ne pas perturber les concepts élémentaires du code C#, cette notion sera abordée à la fin de cette section, quand le concept de bloc sera acquis.

1. La notion de blocs

Afin de pouvoir étudier la notion de blocs, nous allons prendre un fichier modèle de ce qu’était une application console avant l’arrivée de .NET 6 et de son modèle simplifié. Voici le code :

images/02EI13.png

Application console avant .NET 6

Cela est bien entendu plus complexe que la version que nous avons découverte mais contient des concepts essentiels sur le code C#. Dans toutes les explications qui suivent, nous prenons en compte ce code-ci.

Certains caractères sont présents de multiples fois dans un fichier C# et devront être identifiés de façon automatique. La première chose qu’on constate est qu’il existe une indentation (un décalage vers la droite des lignes) et que cette indentation est liée aux caractères accolades ("{" et "}").

De façon assez simple, le langage C# fonctionne par blocs.

Un bloc est un morceau de code qui a son propre contexte et peut contenir d’autres blocs.

Dans notre fichier, par exemple, on constate un premier bloc qui commence à la ligne 4 et qui finit à la ligne 12. Ce bloc contient un autre bloc qui commence à la ligne 6 et finit à la ligne 11. Et finalement, ce dernier en contient également un qui s’étend de la ligne 8 à la ligne 10. La seule instruction qui existe en dehors des blocs est celle présente à la ligne 1, que nous verrons plus tard.

Le dénominateur commun de tous ces blocs est qu’ils...

Exécuter un programme C#

Il est maintenant temps de voir comment il est possible de lancer un programme C#. Notre programme d’exemple ne fait qu’afficher "Hello World!" sur la console, mais il serait intéressant de le voir s’exécuter. Il y a deux façons de réaliser cela.

1. Lancer le programme avec Visual Studio Code

Si vous avez eu la petite pop-up au démarrage qui vous a demandé de restaurer certains éléments pour votre programme, Visual Studio Code a détecté que vous écrivez une application C# et a préparé les dépendances afin que vous puissiez l’exécuter.

Pour démarrer l’application, il faut se rendre sur l’onglet Run & Debug, symbolisé par cette icône :

images/02EI07.PNG

Icône Visual Studio Code pour exécuter le programme

Une fois dans cette partie de l’application, le volet de gauche change pour charger ce qui s’appelle le débogueur (debugger en anglais). Grâce à cet outil, il est possible de lancer une application C# et de visualiser, durant son exécution, les valeurs de variables et d’analyser le déroulé du code pas à pas.

Dans la partie supérieure du volet, il y a normalement une petite flèche de lecture qui permet de démarrer le programme et d’y attacher le débogueur :...

Exercice

Maintenant que vous savez comment exécuter une application .NET et avez compris le principe de l’utilisation de variables, il est temps de passer à un exercice.

Une variable sert principalement à récupérer des valeurs émises par des fonctions. La méthode Console.ReadLine permet de récupérer, sous forme de chaîne de caractères, la saisie de l’utilisateur dans la console. Pour le moment, aucune vérification n’est demandée sur le fait que l’âge est bien un entier.

1. Énoncé

À titre d’exercice, voici ce qu’il est demandé :

  • Afficher un texte de bienvenue.

  • Demander à l’utilisateur de saisir son prénom.

  • Demander à l’utilisateur de saisir son âge.

  • Afficher sur la console "Bonjour [PRENOM], vous avez [AGE] ans" en remplaçant les valeurs entre crochets par les valeurs récupérées.

2. Corrigé

Pour réaliser ce petit exercice, il est possible de créer une nouvelle application ou d’utiliser celle que nous avions déjà créée. En utilisant les méthodes Console.ReadLine, Console.WriteLine et des variables, il est possible de réaliser cet exercice de cette façon :

Console.WriteLine("Bienvenue sur mon programme"); 
Console.WriteLine("Veuillez écrire votre nom et appuyer sur 'Entrée'"); ...