Delen via


Zelfstudie: Een eenvoudige C#-console-app maken in Visual Studio (deel 1 van 2)

In deze zelfstudie gebruikt u Visual Studio om een C#-console-app te maken en uit te voeren en enkele functies van de Integrated Development Environment (IDE) van Visual Studio te verkennen. Deze zelfstudie is deel 1 van een tweedelige reeks zelfstudies.

In deze zelfstudie voert u de volgende taken uit:

  • Maak een Visual Studio-project.
  • Een C#-console-app maken.
  • Fouten opsporen in uw app.
  • Sluit uw app.
  • Inspecteer uw volledige code.

In deel 2 van deze zelfstudiebreidt u deze app uit om meer projecten toe te voegen, meer informatie te krijgen over trucs voor foutopsporing en om te verwijzen naar niet-Microsoft-pakketten.

Voorwaarden

Visual Studio moet zijn geïnstalleerd.

Als u Visual Studio niet hebt, gaat u naar Visual Studio-downloads daar om deze gratis te installeren.

Een project maken

Maak een C#-toepassingsproject om te beginnen. Het projecttype wordt geleverd met alle sjabloonbestanden die u nodig hebt.

  1. Open Visual Studio en selecteer Een nieuw project maken in het startvenster.

    schermopname met het venster Een nieuw project maken.

  2. Selecteer in het venster Een nieuw project maken de optie C# uit de vervolgkeuzelijst voor taal. Kies Windows in de lijst met platformen en Console in de lijst met projecttypen.

    Nadat u de filters voor taal, platform en projecttype hebt toegepast, kiest u de sjabloon Consoletoepassing en selecteert u vervolgens Volgende.

    Notitie

    Als u de sjabloon Consoletoepassing niet ziet, selecteert u Meer hulpprogramma's en functies installeren.

    Schermopname met de koppeling Meer hulpprogramma's en functies installeren.

    Selecteer in het Visual Studio-installatieprogramma de .NET Core platformoverschrijdende ontwikkeling workload.

    Schermopname van de platformoverschrijdende ontwikkelworkload van .NET Core in het Installatieprogramma van Visual Studio.

    Selecteer en wijzig in het Visual Studio Installatieprogramma. Mogelijk wordt u gevraagd uw werk op te slaan. Selecteer Doorgaan om de workload te installeren.

    Ga terug naar stap 2 in de Een project procedure maken.

  3. Typ of voer in het venster Uw nieuwe project configureren Calculator in het vak Projectnaam in. Selecteer vervolgens Volgende.

    Schermopname waarin wordt getoond hoe u uw project 'Calculator' noemt in het venster Uw nieuwe project configureren in Visual Studio.

  4. Controleer in het venster Aanvullende informatie of .NET Core 3.1 wordt weergegeven in het veld Doelframework. Selecteer vervolgens Creëren.

    Schermopname van het venster Aanvullende informatie in Visual Studio met .NET Core 3.1 als doelframework voor het nieuwe project.

Visual Studio opent uw nieuwe project, dat standaard Hello World code bevat. Als u het bestand in de editor wilt weergeven, selecteert u het codebestand Program.cs in het Solution Explorer-venster. Dit bevindt zich meestal aan de rechterkant van Visual Studio.

De standaardcode Hello World roept de WriteLine methode aan om de letterlijke tekenreeks weer te geven Hallo wereld! in het consolevenster. Als u op F5 drukt, kunt u het standaardprogramma uitvoeren in de foutopsporingsmodus. Nadat de toepassing is uitgevoerd in het foutopsporingsprogramma, blijft het consolevenster geopend. Druk op een willekeurige toets om het consolevenster te sluiten.

  1. Open Visual Studio en selecteer Een nieuw project maken in het startvenster.

    Schermopname van het venster Een nieuw project maken.

  2. In het venster Een nieuw project maken selecteert u C# uit de keuzelijst voor talen. Kies Windows in de lijst met platformen en Console in de lijst met projecttypen.

    Nadat u de filters voor taal, platform en projecttype hebt toegepast, kiest u de sjabloon Console-app en selecteert u vervolgens Volgende.

    Notitie

    Als u de console-app sjabloon niet ziet, selecteert u Meer hulpprogramma's en functies installeren.

    Schermopname met de koppeling Meer hulpprogramma's en functies installeren.

    Selecteer in het Visual Studio-installatieprogramma de .NET-desktopontwikkeling workload.

    Schermopname van de workload voor .NET-desktopontwikkeling in het installatieprogramma van Visual Studio.

    Selecteer en wijzig in het Visual Studio Installatieprogramma. Mogelijk wordt u gevraagd uw werk op te slaan. Selecteer Doorgaan om de workload te installeren.

    Ga terug naar stap 2 in dit Een project procedure maken.

  3. In het venster Uw nieuwe project configureren typt u Calculator in het vak Projectnaam en selecteert u vervolgens Volgende.

    Schermopname die laat zien hoe u uw project 'Calculator' kunt noemen in het venster Uw nieuwe project configureren in Visual Studio.

  4. Selecteer in het venster Aanvullende informatie.NET 8.0 voor het veld Target Framework. Selecteer vervolgens Creëren.

    Schermopname van het venster Aanvullende informatie in Visual Studio waarin .NET 8.0 is geselecteerd als het doelframework voor het nieuwe project.

Visual Studio opent uw nieuwe project, dat standaard Hello World code bevat. Als u het bestand in de editor wilt weergeven, selecteert u het codebestand Program.cs in het Solution Explorer-venster. Dit bevindt zich meestal aan de rechterkant van Visual Studio.

De enkele coderegel roept de methode WriteLine aan om de letterlijke tekenreeks Hello, World! in het consolevenster weer te geven. Als u op F5 drukt, kunt u het standaardprogramma uitvoeren in de foutopsporingsmodus. Nadat de toepassing is uitgevoerd in het foutopsporingsprogramma, blijft het consolevenster geopend. Druk op een willekeurige toets om het consolevenster te sluiten.

Notitie

Vanaf .NET 6 genereren nieuwe projecten met behulp van de consolesjabloon andere code dan vorige versies. Voor meer informatie, zie Nieuwe C#-sjablonen genereren topprogrammatica-opdrachten.

De app maken

In deze sectie voert u de volgende taken uit:

  • Verken enkele basisbewerkingen met gehele getallen in C#.
  • Voeg code toe om een eenvoudige rekenmachine-app te maken.
  • Debug de app om fouten te vinden en op te lossen.
  • Verfijn de code om deze efficiënter te maken.

Berekening van gehele getallen verkennen

Begin met enkele eenvoudige wiskundige getallen in C#.

  1. Selecteer in het rechterdeelvenster Program.cs om het bestand weer te geven in de code-editor.

  2. Verwijder in de code-editor de standaardcode Hello World code.

    schermopname met de standaardcode Hallo wereld die u uit de nieuwe rekenmachine-app wilt verwijderen.

    Verwijder met name de regel met de tekst Console.WriteLine("Hello World!");.

  3. Voer de volgende code in:

        int a = 42;
        int b = 119;
        int c = a + b;
        Console.WriteLine(c);
        Console.ReadKey();
    

    U ziet dat wanneer u de code invoert, de Functie IntelliSense in Visual Studio u de optie biedt om de vermelding automatisch aan te vullen.

    Animatie van integer-wiskundecode die de IntelliSense automatisch aanvullen functie in de Visual Studio IDE toont.

  4. Selecteer de groene knop Start naast Calculator om uw programma te bouwen en uit te voeren, of druk op F5-.

    Schermopname met de knop Rekenmachine om de app uit te voeren vanaf de werkbalk.

    Er wordt een consolevenster geopend waarin de som van 42 + 119 wordt weergegeven. Dit is 161.

    Schermopname van een consolevenster met de resultaten van gehele getallen.

  5. (optioneel) U kunt de operator wijzigen om het resultaat te wijzigen. U kunt bijvoorbeeld de operator + in de int c = a + b; coderegel wijzigen in - voor aftrekken, * voor vermenigvuldigen of / voor delen. Wanneer u het programma uitvoert, verandert het resultaat ook.

  6. Sluit het consolevenster.

  1. Selecteer in Solution Explorerin het rechterdeelvenster Program.cs om het bestand weer te geven in de code-editor.

  2. Vervang in de code-editor de standaardcode Hello World code met de tekst Console.WriteLine("Hello World!");.

    Schermopname van de regel die moet worden vervangen in het programmabestand.

    Vervang de regel door de volgende code:

        int a = 42;
        int b = 119;
        int c = a + b;
        Console.WriteLine(c);
        Console.ReadKey();
    

    Als u de code invoert, biedt de Visual Studio IntelliSense-functie u de mogelijkheid om de vermelding automatisch aan te vullen.

    Animatie van integere wiskunde code met de functie voor automatisch aanvullen van IntelliSense in de Visual Studio IDE.

  3. Als u uw app wilt bouwen en uitvoeren, drukt u op F5of selecteert u de groene pijl naast de naam Calculator op de bovenste werkbalk.

    Schermopname van het selecteren van de knop Rekenmachine om de app uit te voeren via de werkbalk Foutopsporing.

    Er wordt een consolevenster geopend met de som van 42 + 119, 161.

    Schermopname van een consolevenster met de resultaten van een geheel getalberekening.

  4. Sluit het consolevenster.

  5. (optioneel) U kunt de operator wijzigen om het resultaat te wijzigen. U kunt bijvoorbeeld de operator + in de int c = a + b; coderegel wijzigen in - voor aftrekken, * voor vermenigvuldigen of / voor delen. Wanneer u de app uitvoert, wordt het resultaat dienovereenkomstig gewijzigd.

Code toevoegen om een rekenmachine te maken

Ga door met het toevoegen van een complexere set rekenmachinecode aan uw project.

  1. Vervang in de code-editor alle code in Program.cs door de volgende nieuwe code:

        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();
                }
            }
        }
    
  2. Selecteer de Calculator knop of druk op F5 om uw app uit te voeren.

    Er wordt een consolevenster geopend.

  3. Volg in het consolevenster de aanwijzingen om de nummers 42 en 119 samen toe te voegen.

    Uw app moet er ongeveer uitzien als in de volgende schermopname:

    Schermopname van een consolevenster met de rekenmachine-app met prompts.

  1. Vervang in de code-editor alle code in Program.cs door de volgende nieuwe code:

        // 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();
    
  2. Selecteer de Calculator knop of druk op F5 om uw app uit te voeren.

    Er wordt een consolevenster geopend.

  3. Volg in het consolevenster de aanwijzingen om de nummers 42 en 119 samen toe te voegen.

    Uw app moet er ongeveer uitzien als in de volgende schermopname:

    Schermopname van een consolevenster met de rekenmachine-app met prompts.

Decimale functionaliteit toevoegen

Pas nu de code aan om meer functionaliteit toe te voegen.

De huidige rekenmachine-app accepteert en retourneert alleen gehele getallen. Als u bijvoorbeeld de app uitvoert en het getal 42 deelt door het getal 119, is uw resultaat nul, wat niet exact is.

Schermopname van een consolevenster waarin de rekenmachine-app een onuitstaand geheel getal retourneert.

De code herstellen om de precisie te verbeteren door decimalen te verwerken:

  1. Druk vanuit Program.cs in de Visual Studio-editor op Ctrl+H om de Zoeken en vervangen functie te openen.

  2. Typ in de bedieningsinterface en typ float in het vervangingsveld .

  3. Selecteer de pictogrammen voor Hoofdlettergevoelig en Hele woord bij de bediening of druk op Alt+C en Alt+W.

  4. Selecteer het pictogram Alles vervangen of druk op Alt+A om zoeken en vervangen uit te voeren.

    Animatie van het besturingselement Zoeken en vervangen waarin wordt getoond hoe u de intvariabele wijzigt in float.

  5. Voer de rekenmachine-app opnieuw uit en deel het getal 42 door het getal 119.

    De app retourneert nu een decimaal getal in plaats van nul.

    Schermopname van een consolevenster met de rekenmachine-app die nu een decimaal getal als resultaat retourneert.

    De app kan nu decimale resultaten produceren. Breng nog enkele aanpassingen aan de code aan, zodat de app ook decimalen kan berekenen.

  6. Gebruik de Zoeken en Vervangen controle om elk exemplaar van de float variabele te vervangen door doubleen elk exemplaar van de Convert.ToInt32 methode te vervangen door Convert.ToDouble.

  7. Voer de rekenmachine-app uit en deel het getal 42,5 door het getal 119,75.

    De app accepteert nu decimale waarden en retourneert een langer decimaal getal als resultaat.

    Schermopname van een consolevenster met de rekenmachine-app die nu decimale getallen accepteert en een langer decimaal resultaat retourneert.

    In de Wijzig de code sectie, vermindert u het aantal decimalen in de resultaten.

Fouten opsporen in de app

U hebt uw eenvoudige rekenmachine-app verbeterd, maar uw app verwerkt nog geen uitzonderingen, zoals invoerfouten van gebruikers. Als gebruikers bijvoorbeeld proberen te delen door nul of een onverwacht teken invoeren, werkt de app mogelijk niet meer, retourneert de app een fout of retourneert een onverwacht niet-numeriek resultaat.

Laten we een paar veelvoorkomende gebruikersinvoerfouten bekijken, deze vinden in het foutopsporingsprogramma als ze daar worden weergegeven en deze in de code herstellen.

De fout delen door nul oplossen

Als u een getal probeert te delen door nul, kan de console-app vastlopen, en ziet u vervolgens wat er mis is in de code-editor.

Schermopname van de Visual Studio-code-editor met daarin een regel die geel is gemarkeerd en een onafgehandelde uitzondering voor 'Poging om te delen door nul'.

Notitie

Soms blokkeert de app niet, en toont de debugger geen foutmelding over delen door nul. In plaats daarvan kan de app een onverwacht niet-numeriek resultaat retourneren, zoals een oneindig symbool. De volgende codeoplossing is nog steeds van toepassing.

We gaan de code wijzigen om deze fout af te handelen. Vervang in Program.csde code voor case "d": door de volgende code:

            // 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;

Nadat u de code hebt vervangen, moet de sectie met de switch-instructie er ongeveer als volgt uitzien:

Schermopname van de gewijzigde switchsectie in de Visual Studio-code-editor.

Wanneer u een getal deelt door nul, vraagt de app om een ander getal en blijft u vragen totdat u een niet-nulnummer opgeeft.

Schermopname van een consolevenster met een herhaalde prompt om een niet-nulnummer op te geven.

De -indeling-fout oplossen

Als u een alfabetisch teken invoert wanneer de app een numeriek teken verwacht, wordt de app geblokkeerd. Visual Studio laat zien wat er mis is in de code-editor.

Schermopname met een niet-verwerkte indelingsfout in de Visual Studio-code-editor.

Schermopname met een niet-verwerkte indelingsfout in de Code-editor van Visual Studio.

Als u deze uitzondering wilt voorkomen, kunt u de code die u eerder hebt ingevoerd, herstructureren.

De code herzien

In plaats van te vertrouwen op de program-klasse om alle code te verwerken, kunt u uw app in twee klassen verdelen: Calculator en Program.

De Calculator klasse verwerkt het grootste deel van het berekeningswerk en de Program klasse verwerkt de gebruikersinterface en foutafhandeling.

Laten we beginnen.

  1. Verwijder in Program.csalles en voeg de volgende nieuwe Calculator-klasse toe:

    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;
        }
    }
    
    
  2. Voeg als volgt een nieuwe Program-klasse toe:

    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;
        }
    }
    
  3. Selecteer de Calculator knop of druk op F5 om uw app uit te voeren.

  4. Volg de aanwijzingen en deel het getal 42 door het getal 119. Uw resultaten moeten er ongeveer uitzien als in de volgende schermopname:

    Schermopname van een consolevenster met de gerestructureerde calculator-app.

    U kunt nu meer berekeningen uitvoeren totdat u ervoor kiest om de console-app te sluiten. De resultaten bevatten ook minder decimalen. En als u een onjuist teken invoert, krijgt u een geschikt foutbericht.

De code herzien

In plaats van te vertrouwen op de program-klasse om alle code te verwerken, kunt u uw app in twee klassen verdelen: Calculator en Program.

De Calculator klasse verwerkt het grootste deel van het berekeningswerk en de Program klasse verwerkt de gebruikersinterface en foutafhandeling.

Laten we beginnen.

  1. Verwijder in Program.csalles en voeg de volgende nieuwe Calculator-klasse toe:

    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;
        }
    }
    
    
  2. Voeg als volgt een nieuwe Program-klasse toe:

    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;
        }
    }
    

    Notitie

    U kunt het beste nullable types gebruiken (met het symbool ?) voor de invoertekenreeksen, omdat System.Console.ReadLine een nullable verwijzingstyperetourneert.

  3. Selecteer de Calculator knop of druk op F5 om uw app uit te voeren.

  4. Volg de aanwijzingen en deel het getal 42 door het getal 119. Uw resultaten moeten er ongeveer uitzien als in de volgende schermopname:

    Schermopname van een consolevenster met de gerestructureerde calculator-app.

    U kunt nu meer berekeningen uitvoeren totdat u ervoor kiest om de console-app te sluiten. De resultaten bevatten ook minder decimalen. En als u een onjuist teken invoert, krijgt u een geschikt foutbericht.

De app sluiten

  1. Als u dit nog niet hebt gedaan, sluit u de calculator-app.

  2. Sluit het deelvenster Uitvoer in Visual Studio.

    Schermopname van het sluiten van het deelvenster Uitvoer in Visual Studio.

  3. Druk in Visual Studio op Ctrl+S om uw app op te slaan.

Git-broncodebeheer toevoegen

Nu u een toepassing hebt, kunt u deze toevoegen aan een Git-opslagplaats. Visual Studio maakt dit proces eenvoudig met Git-hulpprogramma's die u rechtstreeks vanuit de IDE kunt gebruiken.

Fooi

Git is het meest gebruikte moderne versiebeheersysteem. Of u nu een professionele ontwikkelaar bent of leert hoe u codet, Git kan erg nuttig zijn. Als u niet eerder met Git werkt, is de https://git-scm.com/ website een goede plek om te beginnen. U vindt cheatsheets, een populair onlineboek en Git Basics-video's.

Als u uw code wilt koppelen aan Git, begint u met het maken van een nieuwe Git-opslagplaats waar uw code zich bevindt:

  1. Selecteer in de statusbalk rechtsonder in Visual Studio Toevoegen aan broncodebeheeren selecteer vervolgens Git-.

    Schermopname die laat zien hoe u toegang hebt tot de Git-broncodebeheeractie vanuit Toevoegen aan broncodebeheer in Visual Studio.

  2. Meld u aan bij GitHub in het dialoogvenster Een Git-opslagplaats maken.

    schermopname van het dialoogvenster Een Git-opslagplaats maken waarin u zich kunt aanmelden bij GitHub.

    De naam van de opslagplaats wordt automatisch ingevuld op basis van de maplocatie. Uw nieuwe opslagplaats is standaard privé, wat betekent dat u de enige bent die er toegang toe heeft.

    Fooi

    Of uw opslagplaats nu openbaar of privé is, u kunt het beste een externe back-up van uw code veilig opslaan op GitHub. Zelfs als u niet met een team werkt, maakt een externe opslagplaats uw code beschikbaar vanaf elke computer.

  3. Selecteer maken en pushen. Nadat u de opslagplaats hebt gemaakt, ziet u statusdetails op de statusbalk:

    Schermopname van de opslagplaatsstatusbalk onder het deelvenster Solution Explorer in Visual Studio.

Git-acties gebruiken in Visual Studio

Hier volgt een kort overzicht van Git-acties die beschikbaar zijn op de statusbalk van Visual Studio:

  • De pijlen omhoog/omlaag geven aan hoeveel uitgaande/binnenkomende commits zich in uw huidige tak bevinden. U kunt dit pictogram gebruiken om binnenkomende commits op te halen of uitgaande commits te verzenden.

  • Als u een specifieke doorvoering wilt weergeven, selecteert u de pijl-omhoog/omlaag en selecteert u vervolgens Uitgaande/binnenkomendeweergeven.

  • In de Pencil: ziet u hoeveel wijzigingen er nog niet uitgevoerd zijn in uw code. U kunt dit pictogram selecteren om deze wijzigingen weer te geven in het venster Git-wijzigingen.

Het menu Git bevat hulpprogramma's voor opslagplaatsacties in uw bestanden. U kunt git fetch, pull, push en synchronisatie gebruiken voor versiebeheer in Visual Studio.

Zie Over Git in Visual Studiovoor meer informatie over het gebruik van Git met uw app.

Controleren: Code voltooid

In deze zelfstudie hebt u veel wijzigingen aangebracht in de calculator-app. De app verwerkt nu efficiënter rekenresources en verwerkt de meeste invoerfouten van gebruikers.

Hier volgt de volledige code, allemaal op één plek:


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;
    }
}

Volgende stap

Ga verder met het tweede deel van deze zelfstudie: