Sdílet prostřednictvím


Kurz: Vytvoření jednoduché konzolové aplikace v jazyce C# v sadě Visual Studio (část 1 ze 2)

V tomto kurzu pomocí sady Visual Studio vytvoříte a spustíte konzolovou aplikaci jazyka C# a prozkoumáte některé funkce integrovaného vývojového prostředí (IDE) sady Visual Studio. Tento kurz je 1. částí dvoudílné série kurzů.

V tomto kurzu dokončíte následující úlohy:

  • Vytvořte projekt sady Visual Studio.
  • Vytvořte konzolovou aplikaci jazyka C#.
  • Ladění aplikace
  • Zavřete aplikaci.
  • Zkontrolujte celý kód.

V 2. části tohoto kurzurozšíříte tuto aplikaci o další projekty, naučíte se triky pro ladění a práci s balíčky od jiných společností než Microsoft.

Požadavky

Musíte mít nainstalovanou sadu Visual Studio.

Pokud nemáte Visual Studio, přejděte na stažení Visual Studio a nainstalujte jej zdarma.

Vytvoření projektu

Začněte vytvořením projektu aplikace v jazyce C#. Typ projektu obsahuje všechny soubory šablony, které potřebujete.

  1. Otevřete Visual Studio a v okně Start vyberte Vytvořit nový projekt.

    Snímek obrazovky s oknem Vytvořit nový projekt

  2. V okně Vytvořit nový projekt vyberte C# z rozevíracího seznamu jazyků . Ze seznamu typů projektů vyberte Windows a Konzola.

    Po použití filtrů jazyka, platformy a typu projektu zvolte šablonu konzolové aplikace a pak vyberte Další.

    Poznámka

    Pokud šablonu konzolové aplikace nevidíte, vyberte Nainstalovat další nástroje a funkce.

    snímek obrazovky s odkazem Nainstalovat další nástroje a funkce

    V instalačním programu sady Visual Studio vyberte multiplatformní vývoj pro .NET Core úlohy.

    snímek obrazovky znázorňující úlohu vývoje pro různé platformy .NET Core v instalačním programu sady Visual Studio

    V instalačním programu sady Visual Studio vyberte možnost Upravit. Může se zobrazit výzva k uložení práce. Pokud chcete nainstalovat úlohu, vyberte Pokračovat.

    Vraťte se ke kroku 2 v Postupu vytvoření projektu.

  3. V okně Konfigurovat nový projekt zadejte Kalkulačka do pole název projektu. Pak vyberte Další.

    Snímek obrazovky znázorňující, jak pojmenovat projekt 'Kalkulačka' v okně pro konfiguraci nového projektu ve Visual Studiu.

  4. V okně Další informace ověřte, že .NET Core 3.1 se zobrazí v poli Target Framework. Pak vyberte Vytvořit.

    snímek obrazovky okna Další informace v sadě Visual Studio zobrazující .NET Core 3.1 jako cílový rámec pro nový projekt.

Visual Studio otevře nový projekt, který obsahuje výchozí kód Hello World. Pokud ho chcete zobrazit v editoru, vyberte soubor kódu Program.cs v okně Průzkumníka řešení, který je obvykle na pravé straně sady Visual Studio.

Výchozí kód Hello World volá metodu WriteLine k zobrazení literálového řetězce Hello, World! v okně konzoly. Pokud stisknete klávesu F5, můžete spustit výchozí program v režimu ladění. Po spuštění aplikace v ladicím programu zůstane okno konzoly otevřené. Stisknutím libovolné klávesy okno konzoly zavřete.

  1. Otevřete Visual Studio a v okně Start vyberte Vytvořit nový projekt.

    Snímek obrazovky s oknem Vytvořit nový projekt

  2. V okně Vytvořit nový projekt vyberte C# z rozevíracího seznamu jazyků . Ze seznamu typů projektů vyberte Windows a Konzola.

    Po použití filtrů jazyka, platformy a typu projektu zvolte šablonu Konzolová aplikace a pak vyberte Další.

    Poznámka

    Pokud šablonu konzolové aplikace nevidíte, vyberte Nainstalovat další nástroje a funkce.

    snímek obrazovky s odkazem Nainstalovat další nástroje a funkce

    V Instalačním programu sady Visual Studio vyberte pracovní zátěž pro vývoj desktopových aplikací .NET .

    snímek obrazovky znázorňující úlohu vývoje desktopových aplikací .NET v instalačním programu sady Visual Studio

    V instalačním programu sady Visual Studio vyberte možnost Upravit. Může se zobrazit výzva k uložení práce. Pokud chcete nainstalovat úlohu, vyberte Pokračovat.

    Vraťte se v tomto Postupu vytvoření projektu ke kroku 2.

  3. V okně Konfigurovat nový projekt zadejte do pole Název projektu kalkulačku a potom vyberte Další.

    snímek obrazovky, který ukazuje, jak pojmenovat projekt 'Kalkulačka' v okně 'Konfigurace nového projektu' ve Visual Studio

  4. V okně Další informace vyberte rozhraní .NET 8.0 pro pole Target Framework. Pak vyberte Vytvořit.

    snímek obrazovky s oknem Další informace v sadě Visual Studio, ve které je vybraná možnost .NET 8.0 jako cílová architektura pro nový projekt.

Visual Studio otevře nový projekt, který obsahuje výchozí kód Hello World. Pokud ho chcete zobrazit v editoru, vyberte soubor kódu Program.cs v okně Průzkumníka řešení, který je obvykle na pravé straně sady Visual Studio.

Jediný řádek kódu vyvolá metodu WriteLine k zobrazení literálového řetězce Hello, World! v konzolovém okně. Pokud stisknete klávesu F5, můžete spustit výchozí program v režimu ladění. Po spuštění aplikace v ladicím programu zůstane okno konzoly otevřené. Stisknutím libovolné klávesy okno konzoly zavřete.

Poznámka

Od .NET 6 vygenerují nové projekty pomocí šablony konzoly jiný kód než předchozí verze. Další informace najdete v tématu Nové šablony jazyka C# generují příkazy nejvyšší úrovně.

Vytvoření aplikace

V této části dokončíte následující úlohy:

  • Prozkoumejte základní celočíselnou matematiku v jazyce C#.
  • Přidejte kód pro vytvoření základní aplikace kalkulačky.
  • Laděním aplikace vyhledejte a opravte chyby.
  • Zpřesněte kód, aby byl efektivnější.

Prozkoumání celočíselné matematiky

Začněte základní celočíselnou matematikou v jazyce C#.

  1. V pravém podokně vyberte Program.cs, aby se soubor zobrazil v editoru kódu.

  2. V editoru kódu odstraňte výchozí kód Hello World.

    snímek obrazovky s výchozím kódem Hello World, který chcete odstranit z nové aplikace kalkulačky.

    Konkrétně odstraňte řádek, který říká, Console.WriteLine("Hello World!");.

  3. Na svém místě zadejte následující kód:

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

    Všimněte si, že když zadáte kód, nabízí funkce IntelliSense v sadě Visual Studio možnost automatického dokončování položky.

    animace celočíselného matematického kódu zobrazující funkci automatického dokončování IntelliSense v integrovaném vývojovém prostředí sady Visual Studio.

  4. Vyberte zelené tlačítko Start vedle kalkulačky pro sestavení a spuštění programu, nebo stiskněte F5.

    snímek obrazovky s tlačítkem Kalkulačka pro spuštění aplikace z panelu nástrojů

    Otevře se okno konzoly, které zobrazí součet 42 + 119, což je 161.

    Snímek obrazovky s oknem konzoly s výsledky celočíselné matematiky.

  5. (volitelné) Můžete změnit operátor tak, aby změnil výsledek. Například můžete změnit operátor + v řádku int c = a + b; kódu na - pro odčítání, * pro násobení nebo / pro dělení. Když pak program spustíte, výsledek se také změní.

  6. Zavřete okno konzoly.

  1. V Průzkumníku řešenív pravém podokně vyberte Program.cs, aby se soubor zobrazil v editoru kódu.

  2. V editoru kódu nahraďte výchozí Hello World kód, který říká Console.WriteLine("Hello World!");.

    Snímek obrazovky s řádkem, který se má nahradit v souboru programu

    Řádek nahraďte následujícím kódem:

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

    Pokud zadáte kód, nabízí funkce IntelliSense sady Visual Studio možnost automatického dokončování položky.

    animace celočíselného matematického kódu, který zobrazuje funkci automatického dokončování IntelliSense v integrovaném vývojovém prostředí sady Visual Studio.

  3. Aplikaci sestavíte a spustíte tak, že stisknete F5nebo vyberete zelenou šipku vedle názvu Kalkulačka na horním panelu nástrojů.

    snímek obrazovky znázorňující výběr tlačítka Kalkulačka pro spuštění aplikace z panelu nástrojů Ladění

    Otevře se okno konzoly se součtem 42 + 119, což je 161.

    snímek obrazovky okna konzoly zobrazující výsledky celočíselné matematiky.

  4. Zavřete okno konzoly.

  5. (volitelné) Můžete změnit operátor tak, aby změnil výsledek. Například můžete změnit operátor + v řádku int c = a + b; kódu na - pro odčítání, * pro násobení nebo / pro dělení. Když aplikaci spustíte, výsledek se odpovídajícím způsobem změní.

Přidání kódu pro vytvoření kalkulačky

Pokračujte přidáním složitější sady kódu kalkulačky do projektu.

  1. V editoru kódu nahraďte veškerý kód v Program.cs následujícím novým kódem:

        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. Vyberte tlačítko kalkulačky nebo stisknutím klávesy F5 spusťte aplikaci.

    Otevře se okno konzoly.

  3. V okně konzoly podle pokynů přidejte čísla 42 a 119 dohromady.

    Aplikace by měla vypadat podobně jako na následujícím snímku obrazovky:

    snímek obrazovky okna konzoly s aplikací Kalkulačka s výzvami

  1. V editoru kódu nahraďte veškerý kód v Program.cs následujícím novým kódem:

        // 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. Vyberte tlačítko kalkulačky nebo stisknutím klávesy F5 spusťte aplikaci.

    Otevře se okno konzoly.

  3. V okně konzoly podle pokynů přidejte čísla 42 a 119 dohromady.

    Aplikace by měla vypadat podobně jako na následujícím snímku obrazovky:

    Snímek obrazovky zobrazující okno konzoly s aplikací Kalkulačka s výzvami

Přidání funkce pro práci s desetinnými čísly

Teď kód upravte a přidejte další funkce.

Aktuální aplikace kalkulačky přijímá a vrací pouze celá čísla. Pokud například spustíte aplikaci a vydělíte číslo 42 číslem 119, bude výsledkem nula, což není přesné.

snímek obrazovky okna konzoly zobrazující aplikaci Kalkulačka, která vrací nepřesné celé číslo jako výsledek

Oprava kódu pro zlepšení přesnosti zpracováním desetinných míst:

  1. V editoru sady Visual Studio Program.cs stisknutím klávesy Ctrl+H otevřete ovládací prvek Najít a nahradit.

  2. Do ovládacího prvku zadejte int a do pole Nahradit zadejte float.

  3. Vyberte v ovládacím prvku ikony Rozlišovat velká a malá písmena a Shoda celého slova, nebo stiskněte Alt+C a Alt+W.

  4. Vyberte ikonu Nahradit vše nebo stisknutím klávesy Alt+A spusťte funkci hledat a nahradit.

    Animace ovládacího prvku Najít a nahradit ukazující, jak změnit proměnnou int na plovoucí hodnotu.

  5. Spusťte aplikaci kalkulačky znovu a vydělte číslo 42 číslem 119.

    Aplikace teď místo nuly vrátí desetinné číslo.

    snímek obrazovky okna konzoly zobrazující aplikaci Kalkulačka, která teď vrací desetinnou číslici jako výsledek

    Aplikace teď může vytvořit desetinné číslo. Proveďte několik dalších úprav kódu, aby aplikace také mohl vypočítat desetinné čárky.

  6. Pomocí ovládacího prvku Find and Replace změňte každou instanci proměnné float na doublea změňte každou instanci metody Convert.ToInt32 na Convert.ToDouble.

  7. Spusťte aplikaci kalkulačky a vydělte číslo 42,5 číslem 119,75.

    Aplikace teď přijímá desetinné hodnoty a jako výsledek vrátí delší desetinnou číslici.

    snímek obrazovky okna konzoly zobrazující aplikaci Kalkulačka, která teď přijímá desetinná čísla a vrací delší desetinný výsledek.

    V části Upravit kód snížíte počet desetinných míst ve výsledcích.

Ladění aplikace

Vylepšili jste základní aplikaci kalkulačky, ale vaše aplikace ještě nezpracuje výjimky, jako jsou chyby uživatelského vstupu. Pokud se například uživatelé pokusí dělit nulou nebo zadají neočekávaný znak, může aplikace přestat fungovat, vrátit chybu nebo vrátit neočekávaný nečíselný výsledek.

Pojďme si projít několik běžných chyb uživatelského vstupu, vyhledat je v ladicím programu, pokud se tam objeví, a opravit je v kódu.

Spropitné

Další informace o ladicím programu a jeho fungování najdete v tématu První seznámení s ladicím programem sady Visual Studio.

Opravte chybu dělení nulou

Pokud se pokusíte vydělit číslo nulou, aplikace konzoly může zamrznout a pak vám ukáže chybu v editoru kódu.

snímek obrazovky editoru kódu sady Visual Studio se zvýrazněnou žlutou čárou a chybou 'Pokus o dělení nulou: Neošetřená výjimka'.

Poznámka

Někdy se aplikace nezamrzne a ladicí program nezobrazuje chybu dělení nulou. Místo toho může aplikace vrátit neočekávaný nečíselný výsledek, například symbol nekonečna. Stále platí následující oprava kódu.

Pojďme změnit kód pro zpracování této chyby. V Program.csnahraďte kód pro case "d": následujícím kódem:

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

Po nahrazení kódu by část s příkazem switch měla vypadat podobně jako na následujícím snímku obrazovky:

Snímek obrazovky ukazující upravenou sekci přepínače v editoru kódu aplikace Visual Studio

Když teď vydělíte jakékoli číslo nulou, aplikace požádá o další číslo a bude se ptát, dokud nezadáte nenulové číslo.

snímek obrazovky okna konzoly s opakovaným výzvou k zadání nenulového čísla

Opravte formát chyby

Pokud zadáte abecední znak, když aplikace očekává číselný znak, aplikace se zablokuje. Visual Studio vám ukáže, co je v editoru kódu špatně.

Snímek obrazovky zobrazující neošetřenou chybu formátu v editoru kódu sady Visual Studio

snímek obrazovky, který zobrazuje neošetřenou chybu formátu v editoru kódu sady Visual Studio

Pokud chcete této výjimce zabránit, můžete refaktorovat kód, který jste zadali dříve.

Upravit kód

Místo toho, abyste se spoléhali na třídu program ke zpracování veškerého kódu, můžete aplikaci rozdělit do dvou tříd: Calculator a Program.

Třída Calculator zpracovává hromadnou práci výpočtu a třída Program zpracovává uživatelské rozhraní a práci zpracování chyb.

Pojďme začít.

  1. V Program.csodstraňte vše a přidejte následující novou třídu Calculator:

    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. Přidejte také novou třídu Program následujícím způsobem:

    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. Vyberte tlačítko kalkulačky nebo stisknutím klávesy F5 spusťte aplikaci.

  4. Postupujte podle výzev a vydělte číslo 42 číslem 119. Výsledky by měly vypadat podobně jako na následujícím snímku obrazovky:

    Snímek obrazovky zobrazující okno konzoly s refaktorizovanou aplikací kalkulačky

    Teď můžete spouštět další výpočty, dokud se nerozhodnete zavřít konzolovou aplikaci. Ve výsledcích je také méně desetinných míst. A pokud zadáte nesprávný znak, zobrazí se příslušná chybová odpověď.

Upravit kód

Místo toho, abyste se spoléhali na třídu program ke zpracování veškerého kódu, můžete aplikaci rozdělit do dvou tříd: Calculator a Program.

Třída Calculator zpracovává hromadnou práci výpočtu a třída Program zpracovává uživatelské rozhraní a práci zpracování chyb.

Pojďme začít.

  1. V Program.csodstraňte vše a přidejte následující novou třídu Calculator:

    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. Přidejte také novou třídu Program následujícím způsobem:

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

    Poznámka

    Nejlepší je použít nulovatelné typy (se symbolem ?) pro vstupní řetězce, protože System.Console.ReadLine vrací nulovatelný referenční typ.

  3. Vyberte tlačítko kalkulačky nebo stisknutím klávesy F5 spusťte aplikaci.

  4. Postupujte podle výzev a vydělte číslo 42 číslem 119. Výsledky by měly vypadat podobně jako na následujícím snímku obrazovky:

    Snímek obrazovky zobrazující okno konzoly s refaktorizovanou aplikací kalkulačky

    Teď můžete spouštět další výpočty, dokud se nerozhodnete zavřít konzolovou aplikaci. Ve výsledcích je také méně desetinných míst. A pokud zadáte nesprávný znak, zobrazí se příslušná chybová odpověď.

Zavření aplikace

  1. Pokud jste to ještě neudělali, zavřete aplikaci Kalkulačka.

  2. Zavřete podokno Výstup v sadě Visual Studio.

    snímek obrazovky znázorňující zavření podokna výstupu v sadě Visual Studio

  3. V sadě Visual Studio uložte aplikaci stisknutím kláves Ctrl+S.

Přidejte správu verzí Gitu

Teď, když máte aplikaci, můžete ji přidat do úložiště Git. Visual Studio usnadňuje tento proces pomocí nástrojů Gitu, které můžete použít přímo z integrovaného vývojového prostředí (IDE).

Spropitné

Git je nejpoužívanější moderní systém správy verzí. Ať už jste profesionální vývojář nebo se učíte kódovat, může být Git velmi užitečný. Pokud s Gitem začínáte, je web https://git-scm.com/ dobrým místem, kde začít. Můžete najít taháky, oblíbenou online knihu a videa o základech Gitu.

Pokud chcete kód přidružit k Gitu, začněte vytvořením nového úložiště Git, ve kterém se váš kód nachází:

  1. Na stavovém řádku v pravém dolním rohu sady Visual Studio vyberte Přidat do Source Controla poté vyberte Git.

    snímek obrazovky, který ukazuje, jak získat přístup k akci správy zdrojového kódu Gitu z nabídky Přidat do správy zdrojového kódu v sadě Visual Studio

  2. V dialogovém okně Vytvoření úložiště Git se přihlaste k GitHubu:

    snímek obrazovky s dialogovým oknem Vytvořit úložiště Git, kde se můžete přihlásit k GitHubu.

    Název úložiště se automaticky naplní na základě umístění vaší složky. Vaše nové úložiště je ve výchozím nastavení soukromé, což znamená, že jste jediný, kdo k němu má přístup.

    Spropitné

    Bez ohledu na to, jestli je vaše úložiště veřejné nebo soukromé, je nejlepší mít bezpečně uložené vzdálené zálohování kódu na GitHubu. I když nepracujete s týmem, vzdálené úložiště vám zpřístupní váš kód z libovolného počítače.

  3. Vyberte možnost Vytvořit a odeslat. Po vytvoření úložiště se na stavovém řádku zobrazí podrobnosti o stavu:

    snímek obrazovky stavového řádku úložiště pod podoknem Průzkumník řešení v sadě Visual Studio

Použijte akce Git ve Visual Studio

Tady je stručný přehled akcí Gitu dostupných na stavovém řádku sady Visual Studio:

  • Šipky nahoru/dolů ukazují, kolik odchozích a příchozích commitů je ve vaší aktuální větvi. Pomocí této ikony můžete vyžádat příchozí potvrzení nebo odeslat odchozí potvrzení.

  • Pokud chcete zobrazit konkrétní commit, vyberte šipku nahoru/dolů a pak vyberte Zobrazit odchozí/příchozí.

  • Pencil zobrazuje počet nepotvrzených změn kódu. Tuto ikonu můžete vybrat, pokud chcete tyto změny zobrazit v okně Změny Gitu.

Nabídka Git poskytuje nástroje pro práci se soubory v úložišti. Pro správu verzí v sadě Visual Studio můžetepoužít git fetch, pull, push a sync.

Další informace o tom, jak používat Git s aplikací, najdete v tématu O Gitu v sadě Visual Studio.

Revize: Kód je dokončený.

V tomto kurzu jste provedli mnoho změn v aplikaci Kalkulačka. Aplikace teď zpracovává výpočetní prostředky efektivněji a zpracovává většinu chyb uživatelského vstupu.

Tady je kompletní kód, a to vše na jednom místě:


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

Další krok

Pokračujte druhou částí tohoto kurzu: