Tutoriel : Créez une application console C# simple dans Visual Studio (partie 1 sur 2)
Dans ce tutoriel, vous utilisez Visual Studio afin de créer et d’exécuter une application console C#, et vous explorez certaines fonctionnalités de l’environnement de développement intégré (IDE) Visual Studio. Ce tutoriel est la première partie d’une série de tutoriel en deux parties.
Dans ce tutoriel, vous allez effectuer les tâches suivantes :
- Créez un projet Visual Studio.
- Créez une application console C#.
- Déboguez votre application.
- Fermez votre application.
- Inspectez votre code complet.
Dans la partie 2, vous étendez cette application pour ajouter d’autres projets, découvrir des astuces de débogage et référencer des packages tiers.
Prérequis
Visual Studio doit être installé sur votre machine.
Si vous n’avez pas encore installé Visual Studio, accédez à la page Téléchargements Visual Studio pour l’installer gratuitement.
Création d’un projet
Pour commencer, créez un projet d’application C#. Le type de projet est fourni avec tous les fichiers de modèle dont vous avez besoin.
Ouvrez Visual Studio et sélectionnez Créer un projet dans la fenêtre de démarrage.
Dans la fenêtre Créer un nouveau projet, choisissez C# dans la liste des langages. Ensuite, choisissez Windows dans la liste de plateformes et la console dans la liste des types de projet.
Après avoir appliqué le langage, la plateforme et les filtres de type de projet, choisissez le modèle d’application console, puis sélectionnez Suivant.
Notes
Si vous ne voyez pas le modèle d’application console, sélectionnez Installer d’autres outils et fonctionnalités.
Dans Visual Studio Installer, choisissez la charge de travail Développement multiplateforme .NET Core.
Sélectionnez Modifier dans Visual Studio Installer. Vous serez peut-être invité à enregistrer votre travail. Sélectionnez Continuer pour installer la charge de travail.
Revenez à l’étape 2 de la procédure « Créer un projet ».
Dans la fenêtre Configurer votre nouveau projet, tapez ou entrez Calculator dans la zone Nom du projet. Ensuite, cliquez sur Suivant.
Dans la fenêtre Informations supplémentaires, vérifiez que .NET Core 3.1 apparaît dans le champ Framework cible. Sélectionnez ensuite Create (Créer).
Visual Studio ouvre votre nouveau projet, qui inclut le code de « Hello World » par défaut. Pour l’afficher dans l’éditeur, sélectionnez le fichier de code Program.cs dans la fenêtre de l’Explorateur de solutions, qui se trouve généralement sur le côté droit de Visual Studio.
Le code « Hello World » par défaut appelle la méthode WriteLine pour afficher la chaîne littérale « Hello World! » dans la fenêtre de console. Si vous appuyez sur F5, vous pouvez exécuter le programme par défaut en mode débogage. Une fois l’application exécutée dans le débogueur, la fenêtre de console reste ouverte. Appuyez sur une touche pour fermer la fenêtre de console.
Ouvrez Visual Studio et sélectionnez Créer un projet dans la fenêtre de démarrage.
Dans la fenêtre Créer un nouveau projet, sélectionnez Tous les langages, puis choisissez C# dans la liste déroulante. Choisissez Windows dans la liste Toutes les plateformes, puis choisissez Console dans la liste Tous les types de projets.
Après avoir appliqué les filtres de langue, de plateforme et de type de projet, choisissez le modèle d’application console, puis sélectionnez Suivant.
Notes
Si vous ne voyez pas le modèle d’application console, sélectionnez Installer d’autres outils et fonctionnalités.
Dans Visual Studio Installer, sélectionnez la charge de travail Développement .NET Desktop.
Sélectionnez Modifier dans Visual Studio Installer. Vous serez peut-être invité à enregistrer votre travail. Sélectionnez Continuer pour installer la charge de travail.
Revenez à l’étape 2 de la procédure « Créer un projet ».
Dans la fenêtre Configurer votre nouveau projet, tapez ou entrez Calculatrice dans la case Nom du projet puis sélectionnez Suivant.
Dans la fenêtre Informations supplémentaires, sélectionnez .NET 8.0 pour le champ Framework cible. Sélectionnez ensuite Create (Créer).
Visual Studio ouvre votre nouveau projet, qui inclut le code de « Hello World » par défaut. Pour l’afficher dans l’éditeur, sélectionnez le fichier de code Program.cs dans la fenêtre de l’Explorateur de solutions, qui se trouve généralement sur le côté droit de Visual Studio.
L’unique instruction de code appelle la méthode WriteLine pour afficher la chaîne littérale « Hello World! » dans la fenêtre de console. Si vous appuyez sur F5, vous pouvez exécuter le programme par défaut en mode débogage. Une fois l’application exécutée dans le débogueur, la fenêtre de console reste ouverte. Appuyez sur une touche pour fermer la fenêtre de console.
Notes
À partir de .NET 6, les nouveaux projets utilisant le modèle de console génèrent un code différent de celui des versions précédentes. Pour plus d’informations, consultez la page Nouveaux modèles C# générant des instructions de niveau supérieur .
Créer l’application
Dans cette section, vous effectuez les tâches suivantes :
- Découvrez certaines notions mathématiques de base relatives aux entiers en C#.
- Ajoutez du code pour créer une application de calculatrice de base.
- Déboguez l’application pour trouver et corriger les erreurs.
- Affinez le code pour le rendre plus efficace.
Explorer les mathématiques avec des entiers
Commencez par certaines notions mathématiques de base relatives aux entiers en C#.
Dans l’éditeur de code, supprimez le code « Hello World » par défaut.
Plus précisément, supprimez la ligne indiquant
Console.WriteLine("Hello World!");
.À la place, entrez le code suivant :
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Notez que, quand vous entrez le code, la fonctionnalité IntelliSense dans Visual Studio vous offre la possibilité de saisir automatiquement l’entrée.
Sélectionnez le bouton vert Démarrer à côté de Calculatrice pour générer et exécuter votre programme, ou appuyez sur F5.
Une fenêtre de console s’ouvre en affichant la somme de 42 + 119, c’est-à-dire 161.
(Facultatif) Vous pouvez changer d’opérateur pour modifier le résultat. Par exemple, vous pouvez remplacer l’opérateur
+
dans la ligne de codeint c = a + b;
par-
pour la soustraction,*
pour la multiplication ou/
pour la division. Ensuite, quand vous exécutez le programme, le résultat change également.Fermez la fenêtre de console.
Dans l’Explorateur de solutions, dans le volet droit, sélectionnez Program.cs pour afficher le fichier dans l’éditeur de code
Dans l’éditeur de code, remplacez le code « Hello World » par défaut qui indique
Console.WriteLine("Hello World!");
.Remplacez la ligne par le code suivant :
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Si vous entrez le code, la fonctionnalité IntelliSense de Visual Studio vous offre la possibilité de saisir automatiquement l’entrée.
Pour générer et exécuter votre application, appuyez sur F5ou sélectionnez la flèche verte à côté du Calculatrice dans la barre d’outils supérieure.
Une fenêtre de console s’ouvre en montrant la somme de 42 + 119, c’est-à-dire 161.
Fermez la fenêtre de console.
Vous pouvez éventuellement changer l’opérateur pour modifier le résultat. Par exemple, vous pouvez remplacer l’opérateur
+
dans la ligne de codeint c = a + b;
par-
pour la soustraction,*
pour la multiplication ou/
pour la division. Lorsque vous exécutez l’application, le résultat change en conséquence.
Ajouter du code pour créer une calculatrice
Continuez en ajoutant un ensemble plus complexe de code de calculatrice à votre projet.
Dans l’éditeur de code, remplacez tout le code dans Program.cs par le nouveau code suivant :
using System; namespace Calculator { class Program { static void Main(string[] args) { // Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey(); } } }
Sélectionnez le bouton Calculatrice ou appuyez sur F5 pour exécuter votre application.
Une fenêtre de console s'ouvre.
Dans la fenêtre de console, suivez les invites pour ajouter les nombres 42 et 119 ensemble.
Votre application doit ressembler à la capture d’écran suivante :
Dans l’éditeur de code, remplacez tout le code dans Program.cs par le nouveau code suivant :
// Declare variables and then initialize to zero. int num1 = 0; int num2 = 0; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); // Ask the user to type the first number. Console.WriteLine("Type a number, and then press Enter"); num1 = Convert.ToInt32(Console.ReadLine()); // Ask the user to type the second number. Console.WriteLine("Type another number, and then press Enter"); num2 = Convert.ToInt32(Console.ReadLine()); // Ask the user to choose an option. Console.WriteLine("Choose an option from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); // Use a switch statement to do the math. switch (Console.ReadLine()) { case "a": Console.WriteLine($"Your result: {num1} + {num2} = " + (num1 + num2)); break; case "s": Console.WriteLine($"Your result: {num1} - {num2} = " + (num1 - num2)); break; case "m": Console.WriteLine($"Your result: {num1} * {num2} = " + (num1 * num2)); break; case "d": Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2)); break; } // Wait for the user to respond before closing. Console.Write("Press any key to close the Calculator console app..."); Console.ReadKey();
Sélectionnez le bouton Calculatrice ou appuyez sur F5 pour exécuter votre application.
Une fenêtre de console s'ouvre.
Dans la fenêtre de console, suivez les invites pour ajouter les nombres 42 et 119 ensemble.
Votre application doit ressembler à la capture d’écran suivante :
Ajoutez des fonctionnalités décimales
Maintenant, ajustez le code pour ajouter d’autres fonctionnalités.
L’application calculatrice actuelle n’accepte et ne renvoie que des nombres entiers. Par exemple, si vous exécutez l’application et divisez le nombre 42 par le nombre 119, votre résultat est égal à zéro, ce qui n’est pas exact.
Pour corriger le code pour améliorer la précision en gérant les décimales :
À partir de Program.cs dans l’éditeur Visual Studio, appuyez sur Ctrl+H pour ouvrir le contrôle Rechercher et remplacer .
Tapez int dans le contrôle et tapez float dans le champ Remplacer.
Sélectionnez les icônes Correspondant à la casse et au mot entier dans le contrôle, ou appuyez sur Alt+C et Alt+W.
Sélectionnez l’icône Tout remplacer ou appuyez sur Alt+A pour exécuter la recherche et le remplacement.
Exécutez à nouveau votre application de calculatrice et divisez le nombre 42 par le nombre 119.
L’application renvoie désormais un nombre décimal au lieu de zéro.
À présent, l’application peut produire des résultats décimaux. Apportez quelques ajustements supplémentaires au code afin que l’application puisse aussi calculer des valeurs décimales.
Utilisez le contrôle Rechercher et remplacer pour remplacer chaque instance de la variable
float
endouble
, et chaque instance de la méthodeConvert.ToInt32
enConvert.ToDouble
.Exécutez votre application de calculatrice et divisez le nombre 42,5 par le nombre 119,75.
L’application accepte désormais les valeurs décimales et renvoie un chiffre décimal plus long comme résultat.
Dans la section Réviser le code, vous réduisez le nombre de décimales dans les résultats.
Déboguer l’application
Vous avez amélioré l’application de votre calculatrice de base, mais votre application ne gère pas encore les exceptions, telles que les erreurs d’entrée utilisateur. Par exemple, si les utilisateurs essaient de diviser par zéro ou d’entrer un caractère inattendu, il est possible que l’application cesse de fonctionner, renvoyer une erreur ou un résultat non numérique inattendu.
Passons en revue quelques erreurs d’entrée utilisateur courantes, localisons-les dans le débogueur si elles y apparaissent, et corrigeons-les dans le code.
Conseil
Pour plus d’informations sur le débogueur et son fonctionnement, consultez Premier aperçu du débogueur Visual Studio.
Corriger l’erreur de division par zéro
Si vous essayez de diviser un nombre par zéro, l’application console peut se figer, puis vous montrer ce qui ne va pas dans l’éditeur de code.
Note
Parfois, l’application ne se fige pas, et le débogueur n’affiche pas d’erreur de division par zéro. Au lieu de cela, l’application peut renvoyer un résultat non numérique inattendu, tel qu’un symbole d’infini. Le correctif de code suivant s’applique toujours.
Nous allons modifier le code pour gérer cette erreur. Dans Program.cs, remplacez le code par case "d":
avec le code suivant :
// Ask the user to enter a non-zero divisor until they do so.
while (num2 == 0)
{
Console.WriteLine("Enter a non-zero divisor: ");
num2 = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
Après avoir remplacé le code, la section avec l’instruction switch
devrait ressembler à la capture d’écran suivante :
Maintenant, lorsque vous divisez un nombre quelconque par zéro, l’application demande un autre nombre et continue de le demander jusqu’à ce que vous fournissiez un nombre non nul.
Corriger l’erreur de « format »
Si vous entrez un caractère alphabétique lorsque l’application attend un caractère numérique, l’application se fige. Visual Studio vous montre ce qui est incorrect dans l’éditeur de code.
Pour empêcher cette exception, vous pouvez refactoriser le code que vous avez entré précédemment.
Réviser le code
Plutôt que de vous appuyer sur la classe program
pour gérer tout le code, vous pouvez diviser notre application de deux classes : Calculator
et Program
.
La classe Calculator
gère la majeure partie du travail de calcul, et la classe Program
gère l’interface utilisateur et le travail de gestion des erreurs.
Commençons.
Dans Program.cs, supprimez tout et ajoutez la nouvelle classe
Calculator
suivante :class Calculator { public static double DoOperation(double num1, double num2, string op) { double result = double.NaN; // Default value is "not-a-number" if an operation, such as division, could result in an error. // Use a switch statement to do the math. switch (op) { case "a": result = num1 + num2; break; case "s": result = num1 - num2; break; case "m": result = num1 * num2; break; case "d": // Ask the user to enter a non-zero divisor. if (num2 != 0) { result = num1 / num2; } break; // Return text for an incorrect option entry. default: break; } return result; } }
Ajoutez également une nouvelle classe
Program
, comme suit :class Program { static void Main(string[] args) { bool endApp = false; // Display title as the C# console calculator app. Console.WriteLine("Console Calculator in C#\r"); Console.WriteLine("------------------------\n"); while (!endApp) { // Declare variables and set to empty. string numInput1 = ""; string numInput2 = ""; double result = 0; // Ask the user to type the first number. Console.Write("Type a number, and then press Enter: "); numInput1 = Console.ReadLine(); double cleanNum1 = 0; while (!double.TryParse(numInput1, out cleanNum1)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput1 = Console.ReadLine(); } // Ask the user to type the second number. Console.Write("Type another number, and then press Enter: "); numInput2 = Console.ReadLine(); double cleanNum2 = 0; while (!double.TryParse(numInput2, out cleanNum2)) { Console.Write("This is not valid input. Please enter an integer value: "); numInput2 = Console.ReadLine(); } // Ask the user to choose an operator. Console.WriteLine("Choose an operator from the following list:"); Console.WriteLine("\ta - Add"); Console.WriteLine("\ts - Subtract"); Console.WriteLine("\tm - Multiply"); Console.WriteLine("\td - Divide"); Console.Write("Your option? "); string op = Console.ReadLine(); try { result = Calculator.DoOperation(cleanNum1, cleanNum2, op); if (double.IsNaN(result)) { Console.WriteLine("This operation will result in a mathematical error.\n"); } else Console.WriteLine("Your result: {0:0.##}\n", result); } catch (Exception e) { Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message); } Console.WriteLine("------------------------\n"); // Wait for the user to respond before closing. Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: "); if (Console.ReadLine() == "n") endApp = true; Console.WriteLine("\n"); // Friendly linespacing. } return; } }
Sélectionnez le bouton Calculatrice ou appuyez sur F5 pour exécuter votre application.
Suivez les invites et divisez le nombre 42 par le nombre 119. Vos résultats devraient ressembler à la capture d'écran suivante :
Vous pouvez maintenant exécuter davantage de calculs jusqu’à ce que vous choisissiez de fermer l’application console. Il y a également moins de décimales dans les résultats. Et si vous entrez un caractère incorrect, vous obtenez une réponse d’erreur appropriée.
Fermer l’application
Si ce n’est déjà fait, fermez l’application Calculatrice.
Fermez le volet Sortie dans Visual Studio.
Dans Visual Studio, appuyez sur Ctrl+S pour enregistrer votre application.
Ajouter un contrôle de code source Git
Maintenant que vous avez créé une application, vous pouvez l’ajouter à un dépôt Git. Visual Studio facilite ce processus avec les outils Git que vous pouvez utiliser directement à partir de l’IDE.
Conseil
Git étant le système de gestion de version moderne le plus utilisé, que vous soyez développeur professionnel ou que vous appreniez à coder, Git peut être très utile. Si vous débutez avec Git, le site web https://git-scm.com/ est un bon point de départ. Vous y trouverez des aide-mémoire, un livre en ligne populaire et des vidéos Git Basics pour acquérir les bases de Git.
Pour associer votre code à Git, commencez par créer un dépôt Git où se trouve votre code :
Dans la barre d’état en bas à droite de Visual Studio, sélectionnez Ajouter au contrôle de code source, puis sélectionnez Git.
Dans la boîte de dialogue Créer un dépôt Git, connectez-vous à GitHub.
Le nom du référentiel est renseigné automatiquement en fonction de l’emplacement de votre dossier. Votre nouveau dépôt est privé par défaut, ce qui signifie que vous êtes le seul à y accéder.
Conseil
Que votre dépôt soit public ou privé, il est préférable d’avoir une sauvegarde à distance de votre code stockée en toute sécurité sur GitHub. Même si vous ne travaillez pas avec une équipe, un dépôt distant rend votre code disponible à partir de n’importe quel ordinateur.
Sélectionnez Créer et faire un push.
Après avoir créé votre dépôt, vous voyez les détails de l’état dans la barre d’état.
La première icône avec les flèches indique le nombre de commits sortants/entrants dans votre branche actuelle. Vous pouvez utiliser cette icône pour extraire les commits entrants ou envoyer (push) des commits sortants. Vous pouvez également choisir d’afficher ces commits en premier. Pour ce faire, sélectionnez l’icône, puis choisissez View Outgoing/Incoming (Afficher les éléments entrants/sortants).
La deuxième icône avec le crayon indique le nombre de modifications non validées apportées à votre code. Vous pouvez sélectionner cette icône pour afficher ces modifications dans la fenêtre Modifications Git.
Pour en savoir plus sur l’utilisation de Git avec votre application, consultez la documentation relative au contrôle de version de Visual Studio.
Révision : Code terminé
Dans ce tutoriel, vous avez apporté de nombreuses modifications à l’application Calculatrice. L’application gère désormais plus efficacement les ressources de calcul, et traite la plupart des erreurs de saisie des utilisateurs.
Voici le code complet, au même endroit :
class Calculator
{
public static double DoOperation(double num1, double num2, string op)
{
double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error.
// Use a switch statement to do the math.
switch (op)
{
case "a":
result = num1 + num2;
break;
case "s":
result = num1 - num2;
break;
case "m":
result = num1 * num2;
break;
case "d":
// Ask the user to enter a non-zero divisor.
if (num2 != 0)
{
result = num1 / num2;
}
break;
// Return text for an incorrect option entry.
default:
break;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
bool endApp = false;
// Display title as the C# console calculator app.
Console.WriteLine("Console Calculator in C#\r");
Console.WriteLine("------------------------\n");
while (!endApp)
{
// Declare variables and set to empty.
string numInput1 = "";
string numInput2 = "";
double result = 0;
// Ask the user to type the first number.
Console.Write("Type a number, and then press Enter: ");
numInput1 = Console.ReadLine();
double cleanNum1 = 0;
while (!double.TryParse(numInput1, out cleanNum1))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput1 = Console.ReadLine();
}
// Ask the user to type the second number.
Console.Write("Type another number, and then press Enter: ");
numInput2 = Console.ReadLine();
double cleanNum2 = 0;
while (!double.TryParse(numInput2, out cleanNum2))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput2 = Console.ReadLine();
}
// Ask the user to choose an operator.
Console.WriteLine("Choose an operator from the following list:");
Console.WriteLine("\ta - Add");
Console.WriteLine("\ts - Subtract");
Console.WriteLine("\tm - Multiply");
Console.WriteLine("\td - Divide");
Console.Write("Your option? ");
string op = Console.ReadLine();
try
{
result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
if (double.IsNaN(result))
{
Console.WriteLine("This operation will result in a mathematical error.\n");
}
else Console.WriteLine("Your result: {0:0.##}\n", result);
}
catch (Exception e)
{
Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
}
Console.WriteLine("------------------------\n");
// Wait for the user to respond before closing.
Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
if (Console.ReadLine() == "n") endApp = true;
Console.WriteLine("\n"); // Friendly linespacing.
}
return;
}
}
Étapes suivantes
Poursuivez avec la deuxième partie de ce tutoriel :