Blog ENI : Toute la veille numérique !
Offre estivale️ ☀️ : de -20% à -30% sur les livres en ligne et vidéos, avec le code PLAGE Cliquez ici !
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# 12 et Visual Studio Code
  3. Premier programme
Extrait - C# 12 et Visual Studio Code Les fondamentaux du langage
Extraits du livre
C# 12 et Visual Studio Code Les fondamentaux du langage 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 d’un tout premier programme. Comme cela a été mentionné 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. 

Au premier lancement, Visual Studio Code vous proposera probablement d’installer le pack de langage français, afin d’avoir les éléments d’interfaces en français. Il s’agit d’un choix tout à fait personnel et valide. Cependant, l’auteur recommande de rester avec la version anglaise de l’interface pour éviter les erreurs de traduction qui pourraient créer de l’incompréhension. À cet effet, l’intégralité des captures d’écrans de Visual Studio Code seront en anglais.

Afin de créer notre première application, il faut suivre les étapes...

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 (exception faite des commentaires). 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 peu anglais, l’instruction est simple. Nous utilisons la console pour écrire une ligne, et nous indiquons entre parenthèses ce que nous souhaitons 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 nous disséquons totalement cette instruction :

  • Nous utilisons la classe Console.

  • Nous appelons la méthode statique (nous étudierons plus tard ce que statique signifie) WriteLine sur la classe Console.

  • Nous passons en paramètre à la méthode une chaîne de caractères qui contient « Hello World! ».

Nous rencontrons ici plusieurs notions importantes, qui s’éclairciront au fil de l’ouvrage. Mais cette instruction consiste simplement en l’appel d’une méthode sur une classe déjà existante, fournie par le framework. 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...

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

.NET 6 a introduit par défaut l’utilisation d’un modèle simplifié pour les applications console, impliquant que tout le code peut directement être écrit à la racine du fichier Program.cs. Afin de pouvoir étudier la notion de blocs, nous allons utiliser le modèle initial datant d’avant .NET 6. Il est possible de retrouver ce code en utilisant un paramètre spécial à la création de notre application : dotnet new console --use-program-main.

Lorsque nous utilisons la commande dotnet new au sein d’un répertoire particulier, le projet prend le nom du répertoire en question. Il est possible de nommer notre projet différemment en utilisant le paramètre -n : dotnet new console -n MaPremiereApplication. L’exécution de cette ligne de commande produira un nouveau projet console qui portera le nom MaPremiereApplication. 

Voici le code contenu dans le fichier Program.cs, généré par l’outil après l’exécution de cette commande :

images/02RI05N.png

Application console avec le paramètre --use-program-main

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 que nous pouvons constater...

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, vous pouvez créer une nouvelle application ou 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'"); ...