Udostępnij za pomocą


Samouczek: tworzenie prostej aplikacji konsolowej języka C# w programie Visual Studio (część 1 z 2)

W tym samouczku użyjesz programu Visual Studio do utworzenia i uruchomienia aplikacji konsolowej języka C#, a także zapoznasz się z niektórymi funkcjami zintegrowanego środowiska projektowego (IDE) programu Visual Studio. Ten samouczek jest częścią 1 dwuczęściowej serii samouczków.

W tym samouczku wykonasz następujące zadania:

  • Utwórz projekt programu Visual Studio.
  • Utwórz aplikację konsolową języka C#.
  • Debugowanie aplikacji.
  • Zamknij aplikację.
  • Sprawdź kompletny kod.

W części 2 tego samouczka rozszerzysz tę aplikację, aby dodać więcej projektów, poznać wskazówki debugowania i odwołać się do pakietów innych niż Microsoft.

Wymagania wstępne

Musisz mieć zainstalowany program Visual Studio.

Jeśli nie masz programu Visual Studio, przejdź do strony pobierania Visual Studio, aby go zainstalować bezpłatnie.

Tworzenie projektu

Aby rozpocząć, utwórz projekt aplikacji w języku C#. Typ projektu jest dostarczany ze wszystkimi potrzebnymi plikami szablonów.

  1. Otwórz program Visual Studio i wybierz pozycję Utwórz nowy projekt w oknie uruchamiania.

    Zrzut ekranu przedstawiający okno Tworzenie nowego projektu.

  2. W oknie Tworzenie nowego projektu wybierz pozycję C# z listy rozwijanej język. Wybierz pozycję Windows z listy platformy i pozycję Konsola z listy typów projektów.

    Po zastosowaniu filtrów języka, platformy i typu projektu wybierz szablon Aplikacja konsolowa , a następnie wybierz przycisk Dalej.

    Uwaga / Notatka

    Jeśli nie widzisz szablonu Aplikacja konsolowa , wybierz pozycję Zainstaluj więcej narzędzi i funkcji.

    Zrzut ekranu przedstawiający link Zainstaluj więcej narzędzi i funkcji.

    W Instalatorze programu Visual Studio wybierz pakiet wieloplatformowego programowania .NET Core.

    Zrzut ekranu przedstawiający obciążenie programistyczne dla wielu platform .NET Core w Instalatorze programu Visual Studio.

    Wybierz pozycję Modyfikuj w Instalatorze programu Visual Studio. Może zostać wyświetlony monit o zapisanie pracy. Wybierz pozycję Kontynuuj , aby zainstalować obciążenie.

    Wróć do kroku 2 w procedurze Tworzenie projektu .

  3. W oknie Konfigurowanie nowego projektu wpisz Kalkulator w polu Nazwa projektu. Następnie wybierz Dalej.

    Zrzut ekranu przedstawiający sposób nazywania projektu

  4. W oknie Dodatkowe informacje sprawdź, czy platforma .NET Core 3.1 jest wyświetlana w polu Platforma docelowa . Następnie wybierz przycisk Utwórz.

    Zrzut ekranu okna Dodatkowe informacje w programie Visual Studio, pokazujący platformę docelową .NET Core 3.1 dla nowego projektu.

Program Visual Studio otwiera nowy projekt, który zawiera domyślny kod Hello World . Aby wyświetlić go w edytorze, wybierz plik kodu Program.cs w oknie Eksplorator rozwiązań, który zazwyczaj znajduje się po prawej stronie programu Visual Studio.

Domyślny kod Hello World wywołuje metodę WriteLine , aby wyświetlić ciąg literału Hello, World! w oknie konsoli. Po naciśnięciu F5 możesz uruchomić program domyślny w trybie debugowania. Po uruchomieniu aplikacji w debugerze okno konsoli pozostanie otwarte. Naciśnij dowolny, aby zamknąć okno konsoli.

  1. Otwórz program Visual Studio i wybierz pozycję Utwórz nowy projekt w oknie uruchamiania.

    Zrzut ekranu przedstawiający okno Tworzenie nowego projektu.

  2. W oknie Tworzenie nowego projektu wybierz pozycję C# z listy rozwijanej język. Wybierz pozycję Windows z listy platformy i pozycję Konsola z listy typów projektów.

    Po zastosowaniu filtrów języka, platformy i typu projektu wybierz szablon Aplikacja konsolowa , a następnie wybierz przycisk Dalej.

    Uwaga / Notatka

    Jeśli nie widzisz szablonu Aplikacja konsolowa , wybierz pozycję Zainstaluj więcej narzędzi i funkcji.

    Zrzut ekranu przedstawiający link Zainstaluj więcej narzędzi i funkcji.

    W Instalatorze programu Visual Studio wybierz pakiet .NET Desktop Development.

    Zrzut ekranu przedstawiający pakiet programowania aplikacji pulpitu .NET w Instalatorze programu Visual Studio.

    Wybierz pozycję Modyfikuj w Instalatorze programu Visual Studio. Może zostać wyświetlony monit o zapisanie pracy. Wybierz pozycję Kontynuuj , aby zainstalować obciążenie.

    Wróć do kroku 2 w tej procedurze Tworzenie projektu .

  3. W oknie Konfigurowanie nowego projektu wpisz lub wprowadź Kalkulator w polu Nazwa projektu, a następnie wybierz Dalej.

    Zrzut ekranu przedstawiający sposób nazywania projektu

  4. W oknie Dodatkowe informacje wybierz pozycję .NET 8.0 dla pola Platforma docelowa . Następnie wybierz przycisk Utwórz.

    Zrzut ekranu przedstawiający okno Dodatkowe informacje w programie Visual Studio, które pokazuje platformę .NET 8.0 wybraną jako platformę docelową dla nowego projektu.

Program Visual Studio otwiera nowy projekt, który zawiera domyślny kod Hello World . Aby wyświetlić go w edytorze, wybierz plik kodu Program.cs w oknie Eksplorator rozwiązań, który zazwyczaj znajduje się po prawej stronie programu Visual Studio.

Jednolinijkowy kod wywołuje metodę WriteLine, aby wyświetlić ciąg literału Hello, World! w oknie konsoli. Po naciśnięciu F5 możesz uruchomić program domyślny w trybie debugowania. Po uruchomieniu aplikacji w debugerze okno konsoli pozostanie otwarte. Naciśnij dowolny, aby zamknąć okno konsoli.

Uwaga / Notatka

Począwszy od platformy .NET 6, nowe projekty przy użyciu szablonu konsoli generują inny kod niż poprzednie wersje. Aby dowiedzieć się więcej, zobacz Nowe szablony języka C# generują instrukcje najwyższego poziomu.

Tworzenie aplikacji

W tej sekcji wykonasz następujące zadania:

  • Zapoznaj się z podstawową matematyczną liczbą całkowitą w języku C#.
  • Dodaj kod, aby utworzyć podstawową aplikację kalkulatora.
  • Debuguj aplikację, aby znaleźć i naprawić błędy.
  • Uściślij kod, aby był bardziej wydajny.

Eksplorowanie matematycznych liczb całkowitych

Zacznij od podstawowej matematyki całkowitej w języku C#.

  1. W okienku po prawej stronie wybierz Program.cs, aby wyświetlić plik w edytorze kodu.

  2. W edytorze kodu usuń domyślny kod Hello World .

    Zrzut ekranu przedstawiający domyślny kod Hello World do usunięcia z nowej aplikacji kalkulatora.

    W szczególności usuń wiersz, który zawiera Console.WriteLine("Hello World!");.

  3. W jego miejscu wprowadź następujący kod:

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

    Zwróć uwagę, że po wprowadzeniu kodu funkcja IntelliSense w programie Visual Studio oferuje opcję autouzupełniania wpisu.

    Animacja algorytmu matematycznego dotyczącego liczb całkowitych przedstawiająca funkcję autouzupełniania IntelliSense w środowisku IDE Visual Studio.

  4. Wybierz zielony przycisk Start obok pozycji Kalkulator , aby skompilować i uruchomić program, lub naciśnij F5.

    Zrzut ekranu przedstawiający przycisk Kalkulator umożliwiający uruchomienie aplikacji z poziomu paska narzędzi.

    Zostanie otwarte okno konsoli, które ujawnia sumę 42 + 119, czyli 161.

    Zrzut ekranu przedstawiający okno konsoli z wynikami matematycznymi liczb całkowitych.

  5. (Opcjonalnie) Możesz zmienić operator, aby zmienić wynik. Można na przykład zmienić operator + w wierszu kodu int c = a + b; na - w celu odejmowania, na * dla mnożenia lub na / dla dzielenia. Następnie po uruchomieniu programu wynik się zmienia.

  6. Zamknij okno konsoli.

  1. W Eksploratorze rozwiązań w okienku po prawej stronie wybierz pozycję Program.cs , aby wyświetlić plik w edytorze kodu.

  2. W edytorze kodu zastąp domyślny kod Hello World o nazwie Console.WriteLine("Hello World!");.

    Zrzut ekranu przedstawiający wiersz do zastąpienia w pliku programu.

    Zastąp wiersz następującym kodem:

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

    Jeśli wprowadzisz kod, funkcja IntelliSense programu Visual Studio oferuje opcję autouzupełniania wpisu.

    Animacja kodu matematycznego z użyciem liczb całkowitych, która pokazuje funkcję autouzupełniania IntelliSense w środowisku IDE Visual Studio.

  3. Aby skompilować i uruchomić aplikację, naciśnij F5 lub wybierz zieloną strzałkę obok nazwy Kalkulator na górnym pasku narzędzi.

    Zrzut ekranu przedstawiający wybieranie przycisku Kalkulator, aby uruchomić aplikację na pasku narzędzi Debugowanie.

    Zostanie otwarte okno konsoli zawierające sumę 42 + 119, czyli 161.

    Zrzut ekranu przedstawiający okno konsoli z wynikami matematycznych liczb całkowitych.

  4. Zamknij okno konsoli.

  5. (Opcjonalnie) Możesz zmienić operator, aby zmienić wynik. Można na przykład zmienić operator + w wierszu kodu int c = a + b; na - w celu odejmowania, na * dla mnożenia lub na / dla dzielenia. Po uruchomieniu aplikacji wynik zmieni się odpowiednio.

Dodawanie kodu w celu utworzenia kalkulatora

Kontynuuj, dodając bardziej złożony zestaw kodu kalkulatora do projektu.

  1. W edytorze kodu zastąp cały kod w Program.cs następującym nowym kodem:

        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. Wybierz przycisk Kalkulator lub naciśnij F5 , aby uruchomić aplikację.

    Zostanie otwarte okno konsoli.

  3. W oknie konsoli postępuj zgodnie z monitami, aby dodać numery 42 i 119 razem.

    Aplikacja powinna wyglądać podobnie do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający okno konsoli z monitami aplikacji Kalkulator.

  1. W edytorze kodu zastąp cały kod w Program.cs następującym nowym kodem:

        // 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. Wybierz przycisk Kalkulator lub naciśnij F5 , aby uruchomić aplikację.

    Zostanie otwarte okno konsoli.

  3. W oknie konsoli postępuj zgodnie z monitami, aby dodać numery 42 i 119 razem.

    Aplikacja powinna wyglądać podobnie do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający okno Konsola z monitami aplikacji Kalkulator.

Dodawanie funkcji dziesiętnych

Teraz dostosuj kod, aby dodać więcej funkcji.

Bieżąca aplikacja kalkulatora akceptuje tylko liczby całkowite i zwraca je. Jeśli na przykład uruchomisz aplikację i podzielisz liczbę 42 przez liczbę 119, wynik wynosi zero, co nie jest dokładne.

Zrzut ekranu przedstawiający okno konsoli, w ramach którego w wyniku aplikacja Kalkulator zwraca nieistniejącą liczbę całkowitą.

Aby naprawić kod w celu poprawienia dokładności poprzez obsługę liczb dziesiętnych:

  1. Z Program.cs w edytorze programu Visual Studio naciśnij Ctrl+H , aby otworzyć kontrolkę Znajdź i Zamień .

  2. Wpisz int w kontrolce i wpisz float w polu Zamień .

  3. Wybierz ikony Dopasowania wielkości liter i Dopasuj cały wyraz w kontrolce lub naciśnij Alt+C i Alt+W.

  4. Wybierz ikonę Zamień wszystkie lub naciśnij Alt+A , aby uruchomić wyszukiwanie i zastąpić.

    Animacja kontrolki Znajdź i Zamień przedstawiająca sposób zmiany zmiennej int na zmienną

  5. Ponownie uruchom aplikację kalkulatora i podziel liczbę 42 na liczbę 119.

    Aplikacja zwraca teraz liczbę dziesiętną zamiast zera.

    Zrzut ekranu przedstawiający okno Konsoli z wyświetloną aplikacją Kalkulator, która teraz zwraca liczbę dziesiętną w wyniku.

    Teraz aplikacja może wygenerować wyniki dziesiętne. Wprowadź kilka dodatkowych poprawek w kodzie, aby aplikacja mogła również obliczyć liczby dziesiętne.

  6. Użyj kontrolki Znajdź i Zamień , aby zmienić każde wystąpienie zmiennej float na double, i zmienić każde wystąpienie Convert.ToInt32 metody na Convert.ToDouble.

  7. Uruchom aplikację kalkulatora i podziel liczbę 42,5 przez liczbę 119,75.

    Aplikacja akceptuje teraz wartości dziesiętne i zwraca dłuższą liczbę dziesiętną w wyniku.

    Zrzut ekranu przedstawiający okno Konsoli z wyświetloną aplikacją Kalkulator, która teraz akceptuje liczby dziesiętne i zwraca dłuższy wynik dziesiętny.

    W sekcji Popraw kod można zmniejszyć liczbę miejsc dziesiętnych w wynikach.

Debugowanie aplikacji

Ulepszono podstawową aplikację kalkulatora, ale aplikacja nie obsługuje jeszcze wyjątków, takich jak błędy danych wejściowych użytkownika. Jeśli na przykład użytkownicy próbują podzielić przez zero lub wprowadzić nieoczekiwany znak, aplikacja może przestać działać, zwrócić błąd lub zwrócić nieoczekiwany nieliczbowy wynik.

Przyjrzyjmy się kilku typowym błędom danych wejściowych użytkownika, znajdźmy je w debugerze, jeśli się tam pojawią, i naprawmy je w kodzie.

Wskazówka

Aby uzyskać więcej informacji na temat debugera i sposobu jego działania, zobacz Pierwsze spojrzenie na debuger programu Visual Studio.

Napraw błąd dzielenia przez zero

Jeśli spróbujesz podzielić liczbę przez zero, aplikacja konsolowa może się zablokować, a następnie wyświetla, co jest nie tak w edytorze kodu.

Zrzut ekranu edytora Visual Studio pokazujący linię wyróżnioną na żółto oraz błąd

Uwaga / Notatka

Czasami aplikacja nie zawiesza się, a debuger nie wyświetla błędu dzielenia przez zero. Zamiast tego aplikacja może zwrócić nieoczekiwany wynik nieliczbowy, taki jak symbol nieskończoności. Poniższa poprawka kodu nadal ma zastosowanie.

Zmieńmy kod, aby obsłużyć ten błąd. W Program.cs zastąp kod dla case "d": następującym kodem:

            // 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 zastąpieniu kodu sekcja instrukcją switch powinna wyglądać podobnie do poniższego zrzutu ekranu:

Zrzut ekranu przedstawiający poprawioną sekcję przełącznika w edytorze programu Visual Studio Code.

Teraz, gdy dzielisz dowolną liczbę przez zero, aplikacja prosi o inną liczbę i ciągle prosi o podanie liczby niezerowej.

Zrzut ekranu przedstawiający okno konsoli z powtarzającym się monitem o podanie liczby niezerowej.

Naprawianie błędu formatu

Jeśli wprowadzisz znak alfabetyczny, gdy aplikacja oczekuje znaku liczbowego, aplikacja zawiesza się. Program Visual Studio pokazuje, co jest nie tak w edytorze kodu.

Zrzut ekranu przedstawiający nieobsługiwany błąd formatu w edytorze kodu programu Visual Studio.

Zrzut ekranu przedstawiający nieobsługiwany błąd formatu w edytorze kodu programu Visual Studio.

Aby zapobiec temu wyjątkowi, możesz refaktoryzować wcześniej wprowadzony kod.

Poprawianie kodu

Zamiast polegać na klasie program do obsługi całego kodu, możesz podzielić swoją aplikację na dwie klasy: Calculator i Program.

Klasa Calculator obsługuje większość pracy obliczeniowej, a Program klasa obsługuje interfejs użytkownika i obsługę błędów.

Zacznijmy.

  1. W Program.cs usuń wszystko i dodaj następującą nową Calculator klasę:

    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. Dodaj również nową Program klasę w następujący sposób:

    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. Wybierz przycisk Kalkulator lub naciśnij F5 , aby uruchomić aplikację.

  4. Postępuj zgodnie z monitami i podziel liczbę 42 przez liczbę 119. Wyniki powinny wyglądać podobnie do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający okno Konsoli z refaktoryzowaną aplikacją Kalkulator.

    Teraz możesz uruchomić więcej obliczeń, dopóki nie zdecydujesz się zamknąć aplikacji konsolowej. W wynikach jest również mniej miejsc dziesiętnych. A jeśli wprowadzisz nieprawidłowy znak, otrzymasz odpowiednią odpowiedź o błędzie.

Poprawianie kodu

Zamiast polegać na klasie program do obsługi całego kodu, możesz podzielić aplikację na dwie klasy: Calculator i Program.

Klasa Calculator obsługuje większość pracy obliczeniowej, a Program klasa obsługuje interfejs użytkownika i obsługę błędów.

Zacznijmy.

  1. W Program.cs usuń wszystko i dodaj następującą nową Calculator klasę:

    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. Dodaj również nową Program klasę w następujący sposób:

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

    Uwaga / Notatka

    Najlepiej używać typów nullable (z symbolem ?) dla ciągów wejściowych, ponieważ System.Console.ReadLine zwraca typ nullable referencyjny.

  3. Wybierz przycisk Kalkulator lub naciśnij F5 , aby uruchomić aplikację.

  4. Postępuj zgodnie z monitami i podziel liczbę 42 przez liczbę 119. Wyniki powinny wyglądać podobnie do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający okno Konsoli z refaktoryzowaną aplikacją Kalkulator.

    Teraz możesz uruchomić więcej obliczeń, dopóki nie zdecydujesz się zamknąć aplikacji konsolowej. W wynikach jest również mniej miejsc dziesiętnych. A jeśli wprowadzisz nieprawidłowy znak, otrzymasz odpowiednią odpowiedź o błędzie.

Zamykanie aplikacji

  1. Jeśli jeszcze tego nie zrobiono, zamknij aplikację Kalkulator.

  2. Zamknij okienko Dane wyjściowe w programie Visual Studio.

    Zrzut ekranu przedstawia zamknięcie okienka Wyjściowego w programie Visual Studio.

  3. W programie Visual Studio naciśnij Ctrl+S , aby zapisać aplikację.

Dodaj kontrolę źródła Git

Teraz, gdy masz aplikację, możesz dodać ją do repozytorium Git. Program Visual Studio ułatwia ten proces za pomocą narzędzi Git, których można używać bezpośrednio ze środowiska IDE.

Wskazówka

Git to najczęściej używany nowoczesny system kontroli wersji. Niezależnie od tego, czy jesteś profesjonalnym deweloperem, czy uczysz się kodować, usługa Git może być bardzo przydatna. Jeśli dopiero zaczynasz pracę z usługą Git, witryna internetowa https://git-scm.com/ jest dobrym miejscem do rozpoczęcia. Możesz znaleźć ściągawki, popularną książkę online i wideosy z podstaw Git.

Aby skojarzyć kod z usługą Git, zacznij od utworzenia nowego repozytorium Git, w którym znajduje się kod:

  1. Na pasku stanu w prawym dolnym rogu programu Visual Studio wybierz pozycję Dodaj do kontroli źródła, a następnie wybierz pozycję Git.

    Zrzut ekranu przedstawiający sposób uzyskiwania dostępu do akcji kontroli źródła usługi Git z pozycji Dodaj do kontroli źródła w programie Visual Studio.

  2. W oknie dialogowym Tworzenie repozytorium Git zaloguj się do usługi GitHub:

    Zrzut ekranu przedstawiający okno dialogowe Tworzenie repozytorium Git, w którym można zalogować się do usługi GitHub.

    Nazwa repozytorium jest wypełniana automatycznie na podstawie lokalizacji folderu. Nowe repozytorium jest domyślnie prywatne, co oznacza, że jesteś jedynym, który może uzyskać do niego dostęp.

    Wskazówka

    Niezależnie od tego, czy repozytorium jest publiczne, czy prywatne, najlepiej mieć zdalną kopię zapasową kodu przechowywanego bezpiecznie w usłudze GitHub. Nawet jeśli nie pracujesz z zespołem, repozytorium zdalne udostępnia ci kod z dowolnego komputera.

  3. Wybierz Utwórz i wypchnij. Po utworzeniu repozytorium na pasku stanu zostaną wyświetlone szczegóły stanu:

    Zrzut ekranu przedstawiający pasek stanu repozytorium poniżej okienka Eksplorator rozwiązań w programie Visual Studio.

Użyj akcji Git w Visual Studio

Oto krótkie podsumowanie akcji usługi Git dostępnych na pasku stanu programu Visual Studio:

  • Strzałki w górę/w dół pokazują liczbę zatwierdzeń wychodzących/przychodzących w bieżącej gałęzi. Możesz użyć tej ikony, aby pobrać zatwierdzenia przychodzące lub wysłać zatwierdzenia wychodzące.

  • Aby wyświetlić określone zatwierdzenie, wybierz strzałkę w górę/w dół , a następnie wybierz pozycję Wyświetl wychodzące/przychodzące.

  • Ołówek przedstawia liczbę niezatwierdzonych zmian w kodzie. Możesz wybrać tę ikonę, aby wyświetlić te zmiany w oknie Git Changes.

Menu Git udostępnia narzędzia do akcji repozytorium w plikach. W programie Visual Studio można używać git fetch, pull, push i sync do kontroli wersji.

Aby uzyskać więcej informacji na temat korzystania z usługi Git z aplikacją, zobacz About Git in Visual Studio (Informacje o usłudze Git w programie Visual Studio).

Przegląd: Code Complete

W tym samouczku wprowadziłeś wiele zmian w aplikacji Kalkulator. Aplikacja obsługuje teraz zasoby obliczeniowe wydajniej i obsługuje większość błędów wejściowych użytkownika.

Oto kompletny kod, wszystko w jednym miejscu:


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

Następny krok

Kontynuuj pracę z drugą częścią tego samouczka: