Tutoriel : Créer une application console C# simple dans Visual Studio (partie 1 sur 2)
Dans ce tutoriel, vous utilisez Visual Studio pour créer et exécuter une application console C# et explorer certaines fonctionnalités de l’environnement de développement intégré Visual Studio (IDE). Ce tutoriel fait partie 1 d’une série de tutoriels en deux parties.
Dans ce tutoriel, vous effectuez les tâches suivantes :
- Créez un projet Visual Studio.
- Créez une application console C#.
- Déboguer 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.
Conditions préalables
Visual Studio doit être installé.
Si vous n’avez pas encore installé Visual Studio, accédez à la page Téléchargements Visual Studio pour l’installer gratuitement.
Créer 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, puis sélectionnez Créer un projet dans la fenêtre Démarrer.
Dans la fenêtre Créer un projet, choisissez C# dans la liste des langages. Ensuite, choisissez Windows dans la liste plateforme et console dans la liste des types de projets.
Après avoir appliqué les filtres de langage, de plateforme et de type de projet, choisissez le modèle Application Console, puis sélectionnez Suivant.
Remarque
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 dans cette 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, sélectionnez 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 Créer.
Visual Studio ouvre votre nouveau projet, qui inclut le code « Hello World » par défaut. Pour l’afficher dans l’éditeur, sélectionnez le fichier de code Program.cs dans la fenêtre 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 n’importe quelle touche pour fermer la fenêtre de console.
Ouvrez Visual Studio, puis sélectionnez Créer un projet dans la fenêtre Démarrer.
Dans la fenêtre Créer un projet, sélectionnez Toutes les langues, puis choisissez C# dans la liste déroulante. Choisissez Windows dans la liste Toutes les plateformes, puis console dans la liste Tous les types de projets.
Après avoir appliqué les filtres de type langage, plateforme et projet, choisissez le modèle application console, puis sélectionnez suivant.
Remarque
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 dans cette 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 Target Framework. Sélectionnez ensuite Créer.
Visual Studio ouvre votre nouveau projet, qui inclut le code « Hello World » par défaut. Pour l’afficher dans l’éditeur, sélectionnez le fichier de code Program.cs dans la fenêtre explorateur de solutions, qui se trouve généralement sur le côté droit de Visual Studio.
L’instruction de code unique 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 n’importe quelle touche pour fermer la fenêtre de console.
Remarque
À compter de .NET 6, de nouveaux projets utilisant le modèle de console génèrent du code différent de ceux des versions précédentes. Pour plus d’informations, consultez la page Nouveaux modèles C# génèrent des instructions de niveau supérieur.
Créer l’application
Dans cette section, vous effectuez les tâches suivantes :
- Explorez des mathématiques entières de base en C#.
- Ajoutez du code pour créer une application de calculatrice de base.
- Déboguer l’application pour rechercher et corriger les erreurs.
- Affinez le code pour le rendre plus efficace.
Explorer les mathématiques entières
Commencez par quelques mathématiques entières de base en C#.
Dans l’éditeur de code, supprimez le code « Hello World » par défaut.
Plus précisément, supprimez la ligne qui indique
Console.WriteLine("Hello World!");
.À sa place, entrez le code suivant :
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();
Notez que lorsque 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 qui révèle la somme de 42 + 119, qui est 161.
(facultatif) Vous pouvez modifier l’opérateur pour modifier le résultat. Par exemple, vous pouvez modifier l’opérateur de
+
dans la ligne de codeint c = a + b;
en-
pour la soustraction,*
pour la multiplication ou/
pour la division. Ensuite, lorsque vous exécutez le programme, le résultat change également.Fermez la fenêtre de console.
Dans 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é Visual Studio IntelliSense vous offre la possibilité de saisir automatiquement l’entrée.
Pour générer et exécuter votre application, appuyez sur F5, ou sélectionnez la flèche verte en regard du nom Calculatrice dans la barre d’outils supérieure.
Une fenêtre de console s’ouvre qui affiche la somme de 42 + 119, qui est 161.
Fermez la fenêtre de console.
Si vous le souhaitez, vous pouvez modifier l’opérateur pour modifier le résultat. Par exemple, vous pouvez modifier l’opérateur de
+
dans la ligne de codeint c = a + b;
en-
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 instructions pour additionner les nombres 42 et 119.
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 la touche F5 pour exécuter votre application.
Une fenêtre de console s’ouvre.
Dans la fenêtre de console, suivez les instructions pour ajouter les nombres 42 et 119.
Votre application doit ressembler à la capture d’écran suivante :
Ajouter des fonctionnalités décimales
Maintenant, ajustez le code pour ajouter d’autres fonctionnalités.
L’application calculatrice actuelle accepte et retourne uniquement 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.
Réexécutez votre application de calculatrice et divisez le nombre 42 par le nombre 119.
L’application retourne maintenant 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 également calculer les décimales.
Utilisez le contrôle rechercher et remplacer pour modifier chaque instance de la variable
float
endouble
et pour modifier 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 retourne un chiffre décimal plus long en conséquence.
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é votre application de 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, l’application peut cesser de fonctionner, retourner une erreur ou retourner un résultat non numérique inattendu.
Examinons quelques erreurs courantes d’entrée utilisateur, localisons-les dans le débogueur s’ils y apparaissent et corrigez-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.
Correction de l’erreur « diviser par zéro »
Si vous essayez de diviser un nombre par zéro, l’application console peut se figer, puis vous montre ce qui se passe mal dans l’éditeur de code.
Remarque
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 retourner 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 pour case "d":
par 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.ToDouble(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
Après avoir remplacé le code, la section par l’instruction switch
doit ressembler à la capture d’écran suivante :
Maintenant, lorsque vous divisez un nombre par zéro, l’application demande un autre nombre et continue de demander jusqu’à ce que vous fournissez un nombre différent de zéro.
Corriger l’erreur « 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
Au lieu de vous appuyer sur la classe program
pour gérer tout le code, vous pouvez diviser votre application en 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 a numeric 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 a numeric 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 instructions et divisez le nombre 42 par le nombre 119. Vos résultats doivent ressembler à la capture d’écran suivante :
capture d’écran
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.
Réviser le code
Au lieu de vous appuyer sur la classe program
pour gérer tout le code, vous pouvez diviser votre application en 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. // Use Nullable types (with ?) to match type of System.Console.ReadLine 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 a numeric 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 a numeric 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(); // Validate input is not null, and matches the pattern if (op == null || ! Regex.IsMatch(op, "[a|s|m|d]")) { Console.WriteLine("Error: Unrecognized input."); } else { 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 lancer votre application.
Suivez les instructions et divisez le nombre 42 par le nombre 119. Vos résultats doivent ressembler à la capture d’écran suivante :
capture d’écran
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 disposez d’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 est le système de contrôle 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 trouverez des feuilles de triche, un livre en ligne populaire et des vidéos Git Basics.
Pour associer votre code à Git, commencez par créer un dépôt Git où se trouve votre code :
Dans la barre d’état située 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 référentiel est privé par défaut, ce qui signifie que vous êtes le seul à y accéder.
Conseil
Que votre référentiel 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 référentiel distant met votre code à votre disposition à partir d’un ordinateur.
Sélectionnez Créer et envoyer (push). Après avoir créé votre référentiel, vous voyez les détails de l’état dans la barre d’état :
Utiliser des actions Git dans Visual Studio
Voici un bref résumé des actions Git disponibles dans la barre d’état de Visual Studio :
Les flèches Haut/Bas indiquent le nombre de validations sortantes/entrantes dans votre canal actuel. Vous pouvez utiliser cette icône pour extraire les validations entrantes ou envoyer (push) des validations sortantes.
Pour afficher une validation spécifique, sélectionnez la flèche Haut/Bas, puis Afficher les validations sortantes/entrantes.
Le crayon indique le nombre de modifications non validées dans votre code. Vous pouvez sélectionner cette icône pour afficher ces modifications dans la fenêtre Modifications Git.
Le menu Git fournit des outils pour les actions de dépôt sur vos fichiers. Vous pouvez utiliser git fetch, pull, push et sync pour le contrôle de version dans Visual Studio.
Pour plus d’informations sur l’utilisation de Git avec votre application, consultez À propos de Git dans 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 informatiques et gère la plupart des erreurs d’entrée utilisateur.
Voici le code complet, à un seul 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 a numeric 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 a numeric 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;
}
}
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.
// Use Nullable types (with ?) to match type of System.Console.ReadLine
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 a numeric 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 a numeric 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();
// Validate input is not null, and matches the pattern
if (op == null || ! Regex.IsMatch(op, "[a|s|m|d]"))
{
Console.WriteLine("Error: Unrecognized input.");
}
else
{
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 didacticiel :