Samouczek: tworzenie prostej C# aplikacji konsolowej w programie Visual StudioTutorial: Create a simple C# console app in Visual Studio

W tym samouczku C#dla programu Program Visual Studio służy do tworzenia i uruchamiania aplikacji konsolowej oraz eksplorowania niektórych funkcji zintegrowanego środowiska programistycznego (IDE) programu Visual Studio.In this tutorial for C#, you'll use Visual Studio to create and run a console app and explore some features of the Visual Studio integrated development environment (IDE) while you do so.

Jeśli jeszcze nie zainstalowano programu Visual Studio, przejdź do strony program Visual Studio pobiera strony, aby zainstalować go za darmo.If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Jeśli jeszcze nie zainstalowano programu Visual Studio, przejdź do strony program Visual Studio pobiera strony, aby zainstalować go za darmo.If you haven't already installed Visual Studio, go to the Visual Studio downloads page to install it for free.

Tworzenie projektuCreate a project

Aby rozpocząć, utworzymy projekt C# aplikacji.To start, we'll create a C# application project. Typ projektu jest dostarczany ze wszystkimi plikami szablonu, które będą potrzebne, zanim będzie można nawet dodać wszystko.The project type comes with all the template files you'll need, before you've even added anything!

  1. Otwórz program Visual Studio 2017.Open Visual Studio 2017.

  2. Na pasku menu u góry wybierz pliku > New > projektu.From the top menu bar, choose File > New > Project. (Alternatywnie naciśnij klawisze Ctrl+SHIFT+N).(Alternatively, press Ctrl+Shift+N).

  3. W lewym okienku okna dialogowego Nowy projekt rozwiń węzeł C# , a następnie wybierz pozycję .NET Core.In the left pane of the New Project dialog box, expand C#, and then choose .NET Core. W środkowym okienku wybierz pozycję aplikacja konsoli (.NET Core) .In the middle pane, choose Console App (.NET Core). Następnie nazwij Kalkulatorplików.Then name the file Calculator.

    Szablon projektu aplikacji konsolowej (.NET Core) w oknie dialogowym Nowy projekt w programie Visual Studio IDE

Dodaj obciążenie (opcjonalnie)Add a workload (optional)

Jeśli szablon projektu Aplikacja konsolowa (.NET Core) nie jest widoczny, można go uzyskać, dodając obciążenie Międzyplatformowe platformy .NET Core .If you don't see the Console App (.NET Core) project template, you can get it by adding the .NET Core cross-platform development workload. Poniżej przedstawiono sposób.Here's how.

Opcja 1: korzystanie z okna dialogowego Nowy projektOption 1: Use the New Project dialog box

  1. Wybierz łącze otwórz Instalator programu Visual Studio w lewym okienku okna dialogowego Nowy projekt .Choose the Open Visual Studio Installer link in the left pane of the New Project dialog box.

    Wybierz łącze Otwórz Instalator programu Visual Studio w oknie dialogowym Nowy projekt

  2. Uruchamia Instalatora programu Visual Studio.The Visual Studio Installer launches. Wybierz obciążenie dla wielu platform platformy .NET Core , a następnie wybierz Modyfikuj.Choose the .NET Core cross-platform development workload, and then choose Modify.

    Obciążenie Międzyplatformowe dla platformy .NET Core w Instalator programu Visual Studio

Opcja 2. Korzystanie z paska menu narzędziOption 2: Use the Tools menu bar

  1. Anuluj okno dialogowe Nowy projekt i z górnego paska menu, wybierz Narzędzia > Pobierz narzędzia i funkcje.Cancel out of the New Project dialog box and from the top menu bar, choose Tools > Get Tools and Features.

  2. Uruchamia Instalatora programu Visual Studio.The Visual Studio Installer launches. Wybierz obciążenie dla wielu platform platformy .NET Core , a następnie wybierz Modyfikuj.Choose the .NET Core cross-platform development workload, and then choose Modify.

  1. Open Visual Studio 2019.Open Visual Studio 2019.

  2. W oknie uruchamiania wybierz pozycję Utwórz nowy projekt.On the start window, choose Create a new project.

    Wyświetl okno "Tworzenie nowego projektu"

  3. W oknie Tworzenie nowego projektu w polu wyszukiwania wpisz lub wpisz Console .On the Create a new project window, enter or type console in the search box. Następnie wybierz C# z listy język, a następnie wybierz pozycję Windows z listy platform.Next, choose C# from the Language list, and then choose Windows from the Platform list.

    Po zastosowaniu filtrów języka i platformy wybierz szablon Aplikacja konsolowa (.NET Core) , a następnie wybierz przycisk dalej.After you apply the language and platform filters, choose the Console App (.NET Core) template, and then choose Next.

    Wybieranie C# szablonu dla aplikacji konsolowej (.NET Framework)

    Note

    Jeśli nie widzisz szablonu Aplikacja konsolowa (.NET Core) , możesz go zainstalować z okna Utwórz nowy projekt .If you do not see the Console App (.NET Core) template, you can install it from the Create a new project window. W obszarze nie można znaleźć tego, czego szukasz? komunikat wybierz łącze Zainstaluj więcej narzędzi i funkcji .In the Not finding what you're looking for? message, choose the Install more tools and features link.

    Link "Zainstaluj więcej narzędzi i funkcji" z komunikatu "nie można odnaleźć szukanego elementu" w oknie "Tworzenie nowego projektu"

    Następnie w Instalator programu Visual Studio wybierz obciążenie dla wielu platform platformy .NET Core .Then, in the Visual Studio Installer, choose the .NET Core cross-platform development workload.

    Obciążenie Międzyplatformowe dla platformy .NET Core w Instalator programu Visual Studio

    Następnie wybierz przycisk Modyfikuj w Instalator programu Visual Studio.After that, choose the Modify button in the Visual Studio Installer. Może zostać wyświetlony monit o zapisanie pracy; Jeśli tak, zrób to.You might be prompted to save your work; if so, do so. Następnie wybierz pozycję Kontynuuj , aby zainstalować obciążenie.Next, choose Continue to install the workload. Następnie wróć do kroku 2 w tej procedurze "Create a Project".Then, return to step 2 in this "Create a project" procedure.

  4. W oknie Konfigurowanie nowego projektu wpisz lub wprowadź Kalkulator w polu Nazwa projektu .In the Configure your new project window, type or enter Calculator in the Project name box. Następnie wybierz pozycję Utwórz.Then, choose Create.

    w oknie "Konfigurowanie nowego projektu" Nadaj nazwę projektowi "Kalkulator"

    Program Visual Studio otwiera nowy projekt, który zawiera domyślny kod "Hello world".Visual Studio opens your new project, which includes default "Hello World" code.

Tworzenie aplikacjiCreate the app

Po pierwsze będziemy poznać część obliczeń w C#liczbie całkowitej.First, we'll explore some basic integer math in C#. Następnie dodamy kod, aby utworzyć podstawowy Kalkulator.Then, we'll add code to create a basic calculator. Następnie debugujemy aplikację w celu znalezienia i naprawienia błędów.After that, we'll debug the app to find and fix errors. A wreszcie będziemy udoskonalić kod w celu zwiększenia wydajności.And finally, we'll refine the code to make it more efficient.

Poznawanie matematyki całkowitoliczbowejExplore integer math

Zacznijmy od niektórych prostych obliczeń matematycznych w C#.Let's start with some basic integer math in C#.

  1. W edytorze kodu, Usuń domyślny kod "Hello world".In the code editor, delete the default "Hello World" code.

    Usuń domyślny kod Hello world z nowej aplikacji kalkulatora

    W każdym przypadku Usuń wiersz z napisem Console.WriteLine("Hello World!");.Specifically, delete the line that says, Console.WriteLine("Hello World!");.

  2. W tym miejscu wpisz następujący kod:In its place, type the following code:

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

    Należy zauważyć, że po wykonaniu tej czynności funkcja IntelliSense w programie Visual Studio oferuje opcję Autouzupełnianie wpisu.Notice that when you do so, the IntelliSense feature in Visual Studio offers you the option to autocomplete the entry.

    Animacja kodu matematycznego w postaci liczby całkowitej, który pokazuje funkcję Autouzupełnianie funkcji IntelliSense w środowisku IDE programu Visual Studio

  3. Wybierz zielony przycisk Start obok pozycji Kalkulator , aby skompilować i uruchomić program, lub naciśnij klawisz F5.Choose the green Start button next to Calculator to build and run your program, or press F5.

    Wybierz przycisk Kalkulator, aby uruchomić aplikację z paska narzędzi

    Zostanie otwarte okno konsoli, które pokazuje sumę 42 + 119, która jest 161.A console window opens that reveals the sum of 42 + 119, which is 161.

    Okno konsoli przedstawiające wyniki obliczeń liczb całkowitych

  4. (Opcjonalnie) Można zmienić operatora, aby zmienić wynik.(Optional) You can change the operator to change the result. Na przykład można zmienić operator + w wierszu int c = a + b; kodu, aby - do odejmowania, * do mnożenia lub / dzielenia.For example, you can change the + operator in the int c = a + b; line of code to - for subtraction, * for multiplication, or / for division. Następnie, gdy uruchomisz program, wynik zostanie również zmieniony.Then, when you run the program, the result changes, too.

  5. Zamknij okno konsoli.Close the console window.

Dodawanie kodu w celu utworzenia kalkulatoraAdd code to create a calculator

Kontynuujmy Dodawanie bardziej złożonego zestawu kodu kalkulatora do projektu.Let's continue by adding a more complex set of calculator code to your project.

  1. Usuń cały kod widoczny w edytorze kodu.Delete all the code you see in the code editor.

  2. Wprowadź lub wklej następujący nowy kod w edytorze kodu:Enter or paste the following new code into the code editor:

    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();
            }
        }
    }
    
  3. Wybierz Kalkulator , aby uruchomić program, lub naciśnij klawisz F5.Choose Calculator to run your program, or press F5.

    Wybierz przycisk Kalkulator, aby uruchomić aplikację z paska narzędzi

    Zostanie otwarte okno konsoli.A console window opens.

  4. Wyświetl aplikację w oknie konsoli, a następnie postępuj zgodnie z monitami, aby dodać numery 42 i 119.View your app in the console window, and then follow the prompts to add the numbers 42 and 119.

    Aplikacja powinna wyglądać podobnie do poniższego zrzutu ekranu:Your app should look similar to the following screenshot:

    Okno konsoli z aplikacją kalkulatora i zawiera monity o akcje do wykonania

Dodawanie funkcji do kalkulatoraAdd functionality to the calculator

Dostosujmy kod, aby dodać więcej funkcji.Let's tweak the code to add further functionality.

Dodaj miejsca dziesiętneAdd decimals

Aplikacja kalkulatora aktualnie akceptuje i zwraca liczby całkowite.The calculator app currently accepts and returns whole numbers. Jednak będzie bardziej precyzyjna, Jeśli dodamy kod, który umożliwia używanie wartości dziesiętnych.But, it will be more precise if we add code that allows for decimals.

Tak jak na poniższym zrzucie ekranu, jeśli uruchomisz aplikację i podzielę liczbę 42 przez liczbę 119, wynik ma wartość 0 (zero), co nie jest dokładne.As in the following screenshot, if you run the app and divide number 42 by the number 119, your result is 0 (zero), which isn't exact.

Okno konsoli z aplikacją kalkulatora, która nie zwraca cyfry dziesiętnej w wyniku

Naprawianie kodu, aby obsługiwały miejsca dziesiętne.Let's fix the code so that it handles decimals.

  1. Naciśnij klawisz Ctrl + F , aby otworzyć formant Znajdowanie i zamienianie .Press Ctrl + F to open the Find and Replace control.

  2. Zmień każde wystąpienie zmiennej int na float.Change each instance of the int variable to float.

    Upewnij się, że zmieniasz wielkość liter (Alt+C) i dopasowujesz całe wyrazy (Alt+w) w kontrolce Znajdź i Zamień .Make sure that you toggle Match case (Alt+C) and Match whole word (Alt+W) in the Find and Replace control.

    Animacja kontrolki Znajdź i Zamień pokazująca, jak zmienić zmienną int na wartość zmiennoprzecinkową

  3. Ponownie uruchom aplikację Kalkulator i Podziel liczbę 42 przez liczbę 119.Run your calculator app again and divide the number 42 by the number 119.

    Zauważ, że aplikacja zwraca teraz cyfrę dziesiętną zamiast wartości zero.Notice that the app now returns a decimal numeral instead of zero.

    Okno konsoli z aplikacją kalkulatora, która teraz zwraca cyfrę dziesiętną w wyniku

Jednak aplikacja generuje tylko wynik dziesiętny.However, the app produces only a decimal result. Przyjrzyjmy się do kodu, aby aplikacja mogła również obliczyć liczbę miejsc dziesiętnych.Let's make a few more tweaks to the code so that the app can calculate decimals too.

  1. Użyj kontrolki Znajdź i Zamień (Ctrl + F), aby zmienić każde wystąpienie zmiennej float na doublei zmienić każde wystąpienie metody Convert.ToInt32 na Convert.ToDouble.Use the Find and Replace control (Ctrl + F) to change each instance of the float variable to double, and to change each instance of the Convert.ToInt32 method to Convert.ToDouble.

  2. Uruchom aplikację Kalkulator i Podziel liczbę 42,5 przez liczbę 119,75.Run your calculator app and divide the number 42.5 by the number 119.75.

    Zauważ, że aplikacja akceptuje wartości dziesiętne i zwraca dłuższą cyfrę dziesiętną jako wynik.Notice that the app now accepts decimal values and returns a longer decimal numeral as its result.

    Okno konsoli z aplikacją kalkulatora, która akceptuje liczby dziesiętne i zwraca dłuższą cyfrę dziesiętną w wyniku

    (Poprawimy liczbę miejsc dziesiętnych w sekcji Popraw kod ).(We'll fix the number of decimal places in the Revise the code section.)

Debugowanie aplikacjiDebug the app

Ulepszono nasze podstawowe aplikacje kalkulatora, ale nie ma jeszcze bezpieczeństwa w miejscu, w którym można obsługiwać wyjątki, takie jak błędy danych wejściowych użytkownika.We've improved on our basic calculator app, but it doesn't yet have fail safes in place to handle exceptions, such as user input errors.

Na przykład jeśli spróbujesz podzielić liczbę przez zero lub wprowadzić znak alfanumeryczny, gdy aplikacja oczekuje znaku numerycznego (lub odwrotnie), aplikacja przestanie działać i zwróci błąd.For example, if you try to divide a number by zero, or enter an alpha character when the app expects a numeric character (or vice versa), the app stops working and returns an error.

Zapoznaj się z kilkoma typowymi błędami danych wejściowych użytkownika, Znajdź je w debugerze i napraw je w kodzie.Let's walk through a few common user input errors, locate them in the debugger, and fix them in the code.

Tip

Aby uzyskać więcej informacji o debugerze i sposobie jego działania, zobacz pierwsze spojrzenie na stronę debugera programu Visual Studio .For more information about the debugger and how it works, see the First look at the Visual Studio debugger page.

Popraw błąd "dzielenie przez zero"Fix the "divide by zero" error

Podczas próby podzielenia liczby przez zero Aplikacja konsolowa zawiesza się.When you try to divide a number by zero, the console app freezes. Program Visual Studio wyświetli następnie informacje o błędach w edytorze kodu.Visual Studio then shows you what's wrong in the code editor.

Edytor kodu programu Visual Studio pokazuje błąd dzielenia przez zero

Zmieńmy kod, aby obsłużyć ten błąd.Let's change the code to handle this error.

  1. Usuń kod, który pojawia się bezpośrednio między case "d": i komentarz, który brzmi // Wait for the user to respond before closing.Delete the code that appears directly between case "d": and the comment that says // Wait for the user to respond before closing.

  2. Zastąp go następującym kodem:Replace it with the following 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.ToInt32(Console.ReadLine());
                 }
                 Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
                 break;
         }
    

    Po dodaniu kodu sekcja z instrukcją switch powinna wyglądać podobnie do poniższego zrzutu ekranu:After you add the code, the section with the switch statement should look similar to the following screenshot:

    Poprawiona sekcja "switch" w edytorze kodu programu Visual Studio

Teraz, gdy podzielę dowolną liczbę przez zero, aplikacja będzie pytać o inną liczbę.Now, when you divide any number by zero, the app will ask for another number. Jeszcze lepsze: nie będzie ono zatrzymywać, dopóki nie zostanie wprowadzona liczba różna od zera.Even better: It won't stop asking until you provide a number other than zero.

Edytor kodu programu Visual Studio pokazuje błąd dzielenia przez zero

Popraw błąd "format"Fix the "format" error

Jeśli wprowadzisz znak alfanumeryczny, gdy aplikacja oczekuje znaku numerycznego (lub odwrotnie), aplikacja konsoli zostanie zamrożona.If you enter an alpha character when the app expects a numeric character (or vice versa), the console app freezes. Program Visual Studio wyświetli następnie informacje o błędach w edytorze kodu.Visual Studio then shows you what's wrong in the code editor.

Edytor kodu programu Visual Studio pokazuje błąd formatu

Aby naprawić ten błąd, należy wcześniej wprowadzić kod.To fix this error, we must refactor the code that we've previously entered.

Popraw kodRevise the code

Zamiast korzystać z klasy program, aby obsłużyć cały kod, podzielemy aplikację na dwie klasy: Calculator i Program.Rather than rely on the program class to handle all the code, we'll divide our app into two classes: Calculator and Program.

Klasa Calculator będzie obsługiwać zbiorczą ilość pracy obliczeniowej, a Klasa Program będzie obsługiwać interfejs użytkownika i przechwytywanie błędów.The Calculator class will handle the bulk of the calculation work, and the Program class will handle the user interface and error-capturing work.

Zaczynamy!Let's get started.

  1. Usuń wszystko po następującym bloku kodu:Delete everything after the following code block:

    
    using System;
    
    namespace Calculator
    {
    
    
  2. Następnie Dodaj nową klasę Calculator w następujący sposób:Next, add a new Calculator class, as follows:

    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;
        }
    }
    
    
  3. Następnie Dodaj nową klasę Program w następujący sposób:Then, add a new Program class, as follows:

    class Program
    {
        static void Main(string[] args)
        {
            bool endApp = false;
            // Display title as the C# console calculator app.
            Console.WriteLine("Console Calculator in C#\r");
            Console.WriteLine("------------------------\n");
    
            while (!endApp)
            {
                // Declare variables and set to empty.
                string numInput1 = "";
                string numInput2 = "";
                double result = 0;
    
                // Ask the user to type the first number.
                Console.Write("Type a number, and then press Enter: ");
                numInput1 = Console.ReadLine();
    
                double cleanNum1 = 0;
                while (!double.TryParse(numInput1, out cleanNum1))
                {
                    Console.Write("This is not valid input. Please enter an integer value: ");
                    numInput1 = Console.ReadLine();
                }
    
                // Ask the user to type the second number.
                Console.Write("Type another number, and then press Enter: ");
                numInput2 = Console.ReadLine();
    
                double cleanNum2 = 0;
                while (!double.TryParse(numInput2, out cleanNum2))
                {
                    Console.Write("This is not valid input. Please enter an integer value: ");
                    numInput2 = Console.ReadLine();
                }
    
                // Ask the user to choose an operator.
                Console.WriteLine("Choose an operator from the following list:");
                Console.WriteLine("\ta - Add");
                Console.WriteLine("\ts - Subtract");
                Console.WriteLine("\tm - Multiply");
                Console.WriteLine("\td - Divide");
                Console.Write("Your option? ");
    
                string op = Console.ReadLine();
    
                try
                {
                    result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
                    if (double.IsNaN(result))
                    {
                        Console.WriteLine("This operation will result in a mathematical error.\n");
                    }
                    else Console.WriteLine("Your result: {0:0.##}\n", result);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
                }
    
                Console.WriteLine("------------------------\n");
    
                // Wait for the user to respond before closing.
                Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
                if (Console.ReadLine() == "n") endApp = true;
    
                Console.WriteLine("\n"); // Friendly linespacing.
            }
            return;
        }
    }
    
  4. Wybierz Kalkulator , aby uruchomić program, lub naciśnij klawisz F5.Choose Calculator to run your program, or press F5.

  5. Postępuj zgodnie z monitami i Podziel liczbę 42 przez liczbę 119.Follow the prompts and divide the number 42 by the number 119. Aplikacja powinna wyglądać podobnie do poniższego zrzutu ekranu:Your app should look similar to the following screenshot:

    Okno konsoli z zapytaniem do aplikacji kalkulatora refaktoryzacji, która zawiera monity o podejmowanych działaniach i obsłudze błędów dla nieprawidłowych danych wejściowych

    Zwróć uwagę, że możesz wprowadzić więcej równań, dopóki nie zostanie wybrana opcja zamknięcia aplikacji konsolowej.Notice that you have the option to enter more equations until you choose to close the console app. Ponadto zmniejszamy liczbę miejsc dziesiętnych w wyniku.And, we've also reduced the number of decimal places in the result.

Zamknij aplikacjęClose the app

  1. Jeśli jeszcze tego nie zrobiono, zamknij aplikację Kalkulator.If you haven't already done so, close the calculator app.

  2. Zamknij okienko danych wyjściowych w programie Visual Studio.Close the Output pane in Visual Studio.

    Zamknij okienko danych wyjściowych w programie Visual Studio

  3. W programie Visual Studio naciśnij klawisz Ctrl+S , aby zapisać aplikację.In Visual Studio, press Ctrl+S to save your app.

  4. Zamknij program Visual Studio.Close Visual Studio.

Kod ukończonyCode complete

W ramach tego samouczka wprowadziliśmy wiele zmian w aplikacji Kalkulator.During this tutorial, we've made a lot of changes to the calculator app. Aplikacja teraz obsługuje zasoby obliczeniowe i obsługuje większość błędów danych wejściowych użytkownika.The app now handles computing resources more efficiently, and it handles most user input errors.

Oto kompletny kod, wszystko w jednym miejscu:Here's the complete code, all in one place:


using System;

namespace Calculator
{
    class Calculator
    {
        public static double DoOperation(double num1, double num2, string op)
        {
            double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error.

            // Use a switch statement to do the math.
            switch (op)
            {
                case "a":
                    result = num1 + num2;
                    break;
                case "s":
                    result = num1 - num2;
                    break;
                case "m":
                    result = num1 * num2;
                    break;
                case "d":
                    // Ask the user to enter a non-zero divisor.
                    if (num2 != 0)
                    {
                        result = num1 / num2;
                    }
                    break;
                // Return text for an incorrect option entry.
                default:
                    break;
            }
            return result;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            bool endApp = false;
            // Display title as the C# console calculator app.
            Console.WriteLine("Console Calculator in C#\r");
            Console.WriteLine("------------------------\n");

            while (!endApp)
            {
                // Declare variables and set to empty.
                string numInput1 = "";
                string numInput2 = "";
                double result = 0;

                // Ask the user to type the first number.
                Console.Write("Type a number, and then press Enter: ");
                numInput1 = Console.ReadLine();

                double cleanNum1 = 0;
                while (!double.TryParse(numInput1, out cleanNum1))
                {
                    Console.Write("This is not valid input. Please enter an integer value: ");
                    numInput1 = Console.ReadLine();
                }

                // Ask the user to type the second number.
                Console.Write("Type another number, and then press Enter: ");
                numInput2 = Console.ReadLine();

                double cleanNum2 = 0;
                while (!double.TryParse(numInput2, out cleanNum2))
                {
                    Console.Write("This is not valid input. Please enter an integer value: ");
                    numInput2 = Console.ReadLine();
                }

                // Ask the user to choose an operator.
                Console.WriteLine("Choose an operator from the following list:");
                Console.WriteLine("\ta - Add");
                Console.WriteLine("\ts - Subtract");
                Console.WriteLine("\tm - Multiply");
                Console.WriteLine("\td - Divide");
                Console.Write("Your option? ");

                string op = Console.ReadLine();

                try
                {
                    result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
                    if (double.IsNaN(result))
                    {
                        Console.WriteLine("This operation will result in a mathematical error.\n");
                    }
                    else Console.WriteLine("Your result: {0:0.##}\n", result);
                }
                catch (Exception e)
                {
                    Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
                }

                Console.WriteLine("------------------------\n");

                // Wait for the user to respond before closing.
                Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
                if (Console.ReadLine() == "n") endApp = true;

                Console.WriteLine("\n"); // Friendly linespacing.
            }
            return;
        }
    }
}

Następne krokiNext steps

Gratulujemy wykonanie kroków tego samouczka!Congratulations on completing this tutorial! Aby dowiedzieć się jeszcze więcej, przejdź do poniższych samouczków.To learn even more, continue with the following tutorials.

Zobacz takżeSee also