Compartilhar via


Tutorial: Criar um aplicativo de console em C# simples no Visual Studio (parte 1 de 2)

Neste tutorial, você usará o Visual Studio para criar e executar um aplicativo de console C# e explorar alguns recursos do IDE (ambiente de desenvolvimento integrado) do Visual Studio. Este tutorial é a parte 1 de uma série de tutoriais de duas partes.

Neste tutorial, você concluirá as seguintes tarefas:

  • Crie um projeto do Visual Studio.
  • Crie um aplicativo de console em C#.
  • Depure seu aplicativo.
  • Feche seu aplicativo.
  • Inspecione seu código completo.

Na parte 2 deste tutorial, você estenderá este aplicativo para adicionar mais projetos, aprenderá truques de depuração e referenciará pacotes que não são da Microsoft.

Pré-requisitos

Você deve ter o Visual Studio instalado.

Se você não tiver o Visual Studio, acesse Downloads do Visual Studio para instalá-lo gratuitamente.

Criar um projeto

Para começar, crie um projeto de aplicativo em C#. O tipo de projeto vem com todos os arquivos de modelo necessários.

  1. Abra o Visual Studio e selecione Criar um novo projeto na janela inicial.

    Captura de tela mostrando a janela Criar um novo projeto.

  2. Na janela Criar um projeto, selecione C# na lista suspensa de linguagens de programação. Escolha Windows na lista de plataformas e Console na lista de tipos de projeto.

    Depois de aplicar os filtros de linguagem, plataforma e tipo de projeto, escolha o modelo Aplicativo de Console e, em seguida, selecione Avançar.

    Nota

    Se você o modelo Aplicativo do Console não for exibido, selecione Instalar mais ferramentas e recursos.

    Captura de tela que mostra o link Instalar mais ferramentas e recursos.

    No Instalador do Visual Studio, selecione a carga de trabalho de desenvolvimento multiplataforma do .NET Core.

    Captura de tela mostrando a carga de trabalho de desenvolvimento multiplataforma do .NET Core no Instalador do Visual Studio.

    Selecione o botão Modificar no Visual Studio Installer. Você pode ser solicitado a salvar seu trabalho. Selecione Continuar para instalar a carga de trabalho.

    Volte para a etapa 2 no procedimento Criar um projeto.

  3. Na janela Configurar seu novo projeto, digite ou insira Calculadora na caixa Nome do projeto. Em seguida, selecione Próximo.

    Captura de tela mostrando como nomear seu projeto como

  4. Na janela Informações adicionais, verifique se .NET Core 3.1 aparece no campo Estrutura de Destino. Em seguida, selecione Criar.

    Captura de tela da janela Informações Adicionais no Visual Studio mostrando o .NET Core 3.1 como a estrutura de destino para o novo projeto.

O Visual Studio abre seu novo projeto, que inclui o código padrão Hello World. Para exibi-lo no editor, selecione o arquivo de código Program.cs na janela do Gerenciador de Soluções, que normalmente está no lado direito do Visual Studio.

O código padrão Hello World chama o método WriteLine para exibir a cadeia de caracteres literal Hello, World! na janela do console. Se você pressionar F5, poderá executar o programa padrão no modo de Depuração. Depois que o aplicativo é executado no depurador, a janela do console permanece aberta. Pressione qualquer tecla para fechar a janela do console.

  1. Abra o Visual Studio e selecione Criar um novo projeto na janela inicial.

    captura de tela que mostra a janela Criar um novo projeto.

  2. Na janela Criar um projeto, selecione C# na lista suspensa de linguagens de programação. Escolha Windows na lista de plataformas e Console na lista de tipos de projeto.

    Depois de aplicar os filtros de linguagem, plataforma e tipo de projeto, escolha o modelo Aplicativo de Console e, em seguida, selecione Avançar.

    Nota

    Se você o modelo Aplicativo do Console não for exibido, selecione Instalar mais ferramentas e recursos.

    Captura de tela que mostra o link Instalar mais ferramentas e recursos.

    No Visual Studio Installer, selecione a carga de trabalho de desenvolvimento da área de trabalho do .NET.

    Captura de tela que mostra a carga de trabalho de desenvolvimento da área de trabalho do .NET no Instalador do Visual Studio.

    Selecione e modifique no Instalador do Visual Studio. Você pode ser solicitado a salvar seu trabalho. Selecione Continuar para instalar a carga de trabalho.

    Retorne à etapa 2 neste procedimento Criar um projeto.

  3. Na janela Configurar seu novo projeto, digite ou insira Calculadora na caixa Nome do projeto e, em seguida, selecione Avançar.

    Captura de tela que mostra como nomear seu projeto como

  4. Na janela Informações adicionais, selecione .NET 8.0 para o campo Estrutura de destino. Em seguida, selecione Criar.

    Captura de tela da janela Informações Adicionais no Visual Studio que mostra o .NET 8.0 selecionado como a estrutura de destino para o novo projeto.

O Visual Studio abre seu novo projeto, que inclui o código padrão Hello World. Para exibi-lo no editor, selecione o arquivo de código Program.cs na janela do Gerenciador de Soluções, que normalmente está no lado direito do Visual Studio.

A instrução de código único chama o método WriteLine para exibir a cadeia de caracteres literal Olá, Mundo! na janela do console. Se você pressionar F5, poderá executar o programa padrão no modo de Depuração. Depois que o aplicativo é executado no depurador, a janela do console permanece aberta. Pressione qualquer tecla para fechar a janela do console.

Nota

A partir do .NET 6, novos projetos que usam o modelo de console geram código diferente das versões anteriores. Para saber mais, consulte Novos modelos C# geram instruções de nível superior.

Criar o aplicativo

Nesta seção, você concluirá as seguintes tarefas:

  • Explore algumas matemáticas básicas de inteiros em C#.
  • Adicione código para criar um aplicativo de calculadora básico.
  • Depure o aplicativo para localizar e corrigir erros.
  • Refinar o código para torná-lo mais eficiente.

Explorar aritmética de inteiros

Comece com alguns números inteiros básicos em C#.

  1. No painel direito, selecione Program.cs para exibir o arquivo no editor de código.

  2. No editor de código, exclua o código padrão Hello World.

    Captura de tela mostrando o código Olá, Mundo padrão a ser excluído do seu novo aplicativo de calculadora.

    Especificamente, exclua a linha que diz, Console.WriteLine("Hello World!");.

  3. Em seu lugar, insira o seguinte código:

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

    Observe que quando você insere o código, o recurso IntelliSense no Visual Studio oferece a opção de preenchimento automático da entrada.

    Animação do código de matemática inteiro mostrando o recurso de preenchimento automático do IntelliSense no IDE do Visual Studio.

  4. Selecione o botão Iniciar verde ao lado da Calculadora para compilar e executar seu programa ou pressione F5.

    Captura de tela mostrando o botão Calculadora para executar o aplicativo na barra de ferramentas.

    Uma janela do console é aberta que revela a soma de 42 + 119, que é 161.

    Captura de tela mostrando uma janela do console com os resultados de cálculos inteiros.

  5. (opcional) Você pode alterar o operador para alterar o resultado. Por exemplo, você pode alterar o operador + na linha de código int c = a + b; para - para subtração, * para multiplicação ou / para divisão. Em seguida, quando você executa o programa, o resultado também muda.

  6. Feche a janela do console.

  1. No Gerenciador de Soluções, selecione Program.cs no painel direito para exibir o arquivo no editor de código.

  2. No editor de código, substitua o código padrão Hello World que diz Console.WriteLine("Hello World!");.

    captura de tela que mostra a linha a ser substituída no arquivo do programa.

    Substitua a linha pelo seguinte código:

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

    Se você inserir o código, o recurso IntelliSense do Visual Studio oferecerá a opção de preenchimento automático da entrada.

    Animação do código matemático inteiro que mostra o recurso de preenchimento automático do IntelliSense no IDE do Visual Studio.

  3. Para criar e executar seu aplicativo, pressione F5ou selecione a seta verde ao lado do nome Calculadora na barra de ferramentas superior.

    Captura de tela que mostra a seleção do botão Calculadora para executar o aplicativo na barra de ferramentas de depuração.

    Uma janela do console é aberta que mostra a soma de 42 + 119, que é 161.

    Captura de tela de uma janela do console mostrando os resultados do cálculo inteiro.

  4. Feche a janela do console.

  5. (opcional) Você pode alterar o operador para alterar o resultado. Por exemplo, você pode alterar o operador + na linha de código int c = a + b; para - para subtração, * para multiplicação ou / para divisão. Quando você executa o aplicativo, o resultado muda de acordo.

Adicionar código para criar uma calculadora

Continue adicionando um conjunto mais complexo de código de calculadora ao seu projeto.

  1. No editor de código, substitua todo o código no Program.cs pelo novo código a seguir:

        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. Selecione o botão da Calculadora ou pressione F5 para executar seu aplicativo.

    Uma janela do console é aberta.

  3. Na janela do console, siga os prompts para adicionar os números 42 e 119 juntos.

    Seu aplicativo deve ser semelhante à seguinte captura de tela:

    Captura de tela de uma janela console mostrando o aplicativo Calculadora com prompts.

  1. No editor de código, substitua todo o código no Program.cs pelo novo código a seguir:

        // 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. Selecione o botão da Calculadora ou pressione F5 para executar seu aplicativo.

    Uma janela do console é aberta.

  3. Na janela do console, siga os prompts para adicionar os números 42 e 119 juntos.

    Seu aplicativo deve ser semelhante à seguinte captura de tela:

    Captura de tela que mostra uma janela console com o aplicativo Calculadora com prompts.

Adicionar funcionalidade decimal

Agora, ajuste o código para adicionar mais funcionalidade.

O aplicativo de calculadora atual aceita e retorna apenas números inteiros. Por exemplo, se você executar o aplicativo e dividir o número 42 pelo número 119, o resultado será zero, o que não é exato.

Captura de tela de uma janela do console que mostra o aplicativo Calculadora retornando um número inteiro impreciso como resultado.

Para corrigir o código para melhorar a precisão, tratando decimais:

  1. Em Program.cs no editor do Visual Studio, pressione Ctrl+H para abrir o controle Localizar e Substituir.

  2. Digite int no controle e float no campo Substituir.

  3. Selecione os ícones para Diferenciar maiúsculas e minúsculas e Coincidir palavra inteira no controle ou pressione Alt+C e Alt+W.

  4. Selecione o ícone Substituir tudo ou pressione Alt+A para executar a pesquisa e substituir.

    Animação do controle Localizar e Substituir mostrando como alterar a variável int para flutuar.

  5. Execute seu aplicativo de calculadora novamente e divida o número 42 pelo número 119.

    O aplicativo agora retorna um número decimal em vez de zero.

    Captura de tela de uma janela console mostrando o aplicativo Calculadora que agora retorna um numeral decimal como resultado.

    Agora o aplicativo pode produzir resultados decimais. Faça mais alguns ajustes no código para que o aplicativo também possa calcular decimais.

  6. Use o controle Localizar e Substituir para alterar cada instância da variável float para doublee alterar cada instância do método Convert.ToInt32 para Convert.ToDouble.

  7. Execute seu aplicativo de calculadora e divida o número 42,5 pelo número 119,75.

    O aplicativo agora aceita valores decimais e retorna um numeral decimal mais longo como resultado.

    Captura de tela de uma janela console mostrando o aplicativo Calculadora que agora aceita números decimais e retorna um resultado decimal mais longo.

    Na seção Revisar o código, você reduz o número de casas decimais nos resultados.

Depurar o aplicativo

Você melhorou seu aplicativo de calculadora básica, mas seu aplicativo ainda não lida com exceções, como erros de entrada do usuário. Por exemplo, se os usuários tentarem dividir por zero ou inserir um caractere inesperado, o aplicativo poderá parar de funcionar, retornar um erro ou retornar um resultado não numérico inesperado.

Vamos percorrer alguns erros comuns de entrada de usuário, localizá-los no depurador, caso apareçam, e corrigi-los no código.

Dica

Para obter mais informações sobre o depurador e como ele funciona, consulte Primeira olhada no depurador do Visual Studio.

Corrigir o erro de divisão por zero

Se você tentar dividir um número por zero, o aplicativo de console poderá congelar e mostrar o que há de errado no editor de código.

Captura de tela do editor de código do Visual Studio mostrando uma linha realçada em amarelo e um erro Exceção sem tratamento para

Nota

Às vezes, o aplicativo não congela e o depurador não mostra um erro de divisão por zero. Em vez disso, o aplicativo pode retornar um resultado não numérico inesperado, como um símbolo infinito. A correção de código a seguir ainda se aplica.

Vamos alterar o código para lidar com esse erro. Em Program.cs, substitua o código para case "d": pelo seguinte código:

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

Depois de substituir o código, a seção com a instrução switch deverá ser semelhante à seguinte captura de tela:

Captura de tela mostrando a seção alterada e revisada no editor de códigos do Visual Studio.

Agora, quando você divide qualquer número por zero, o aplicativo solicita outro número e continua perguntando até que você forneça um número diferente de zero.

Captura de tela de uma janela do Console com um prompt repetido para fornecer um número diferente de zero.

Corrigir o erro de formato

Se você inserir um caractere alfabético quando o aplicativo esperar um caractere numérico, o aplicativo congela. O Visual Studio mostra o que há de errado no editor de código.

Captura de tela mostrando um erro de formato sem tratamento no editor de código do Visual Studio.

Captura de tela que mostra um erro de formato sem tratamento no editor de código do Visual Studio.

Para evitar essa exceção, você pode refatorar o código inserido anteriormente.

Revisar o código

Em vez de contar com a classe program para lidar com todo o código, você pode dividir seu aplicativo em duas classes: Calculator e Program.

A classe Calculator manipula a maior parte do trabalho de cálculo e a classe Program manipula a interface do usuário e o trabalho de tratamento de erros.

Vamos começar.

  1. Em Program.cs, exclua tudo e adicione a seguinte nova classe de 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. Adicione também uma nova classe Program, da seguinte maneira:

    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. Selecione o botão da Calculadora ou pressione F5 para executar seu aplicativo.

  4. Siga os prompts e divida o número 42 pelo número 119. Seus resultados devem ser semelhantes à seguinte captura de tela:

    Captura de tela mostrando uma janela do console com o aplicativo Calculadora refatorado.

    Agora você pode executar mais cálculos até optar por fechar o aplicativo de console. Também há menos casas decimais nos resultados. E se você inserir um caractere incorreto, obterá uma resposta de erro apropriada.

Revisar o código

Em vez de contar com a classe program para lidar com todo o código, você pode dividir seu aplicativo em duas classes: Calculator e Program.

A classe Calculator manipula a maior parte do trabalho de cálculo e a classe Program manipula a interface do usuário e o trabalho de tratamento de erros.

Vamos começar.

  1. Em Program.cs, exclua tudo e adicione a seguinte nova classe de 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. Adicione também uma nova classe Program, da seguinte maneira:

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

    Nota

    É melhor usar tipos anuláveis (com o símbolo ?) para as cadeias de caracteres de entrada, uma vez que System.Console.ReadLine retorna um tipo de referência anulável.

  3. Selecione o botão da Calculadora ou pressione F5 para executar seu aplicativo.

  4. Siga os prompts e divida o número 42 pelo número 119. Seus resultados devem ser semelhantes à seguinte captura de tela:

    Captura de tela mostrando uma janela do console com o aplicativo calculadora refatorado.

    Agora você pode executar mais cálculos até optar por fechar o aplicativo de console. Também há menos casas decimais nos resultados. E se você inserir um caractere incorreto, obterá uma resposta de erro apropriada.

Fechar o aplicativo

  1. Se você ainda não fez isso, feche o aplicativo Calculadora.

  2. Feche o painel Saída no Visual Studio.

    Captura de tela que mostra o fechamento do painel Saída no Visual Studio.

  3. No Visual Studio, pressione Ctrl+S para salvar seu aplicativo.

Adicionar controle do código-fonte do Git

Agora que você tem um aplicativo, convém adicioná-lo a um repositório Git. O Visual Studio facilita esse processo com as ferramentas do Git que você pode usar diretamente do IDE.

Dica

O Git é o sistema de controle de versão moderno mais usado. Se você é um desenvolvedor profissional ou está aprendendo a codificar, o Git pode ser muito útil. Se você é novo no Git, o site https://git-scm.com/ é um bom lugar para começar. Você pode encontrar guias rápidos, um livro online popular e vídeos do Git Basics.

Para associar seu código ao Git, comece criando um novo repositório Git no qual seu código está localizado:

  1. Na barra de status no canto inferior direito do Visual Studio, selecione Adicionar ao Controle do Código-Fontee selecione Git.

    Captura de tela que mostra como acessar o controle de origem Git a partir de Adicionar ao Controle de Origem no Visual Studio.

  2. Na caixa de diálogo Criar um repositório Git, entre no GitHub:

    Captura de tela da janela criar um repositório Git, na qual você pode entrar no GitHub.

    O nome do repositório é preenchido automaticamente com base no local da pasta. Seu novo repositório é privado por padrão, o que significa que você é o único que pode acessá-lo.

    Dica

    Se o repositório é público ou privado, é melhor ter um backup remoto do código armazenado com segurança no GitHub. Mesmo que você não esteja trabalhando com uma equipe, um repositório remoto disponibiliza seu código para você em qualquer computador.

  3. Selecione Criar e Enviar por Push. Depois de criar o repositório, você verá os detalhes de status na barra de status:

    Captura de tela da barra de status do repositório abaixo do painel Gerenciador de Soluções no Visual Studio.

Usar ações do Git no Visual Studio

Aqui está um breve resumo das ações do Git disponíveis na barra de status do Visual Studio:

  • As setas para cima/para baixo mostram quantos commits de saída e de entrada estão no seu branch atual. Você pode usar esse ícone para efetuar pull de qualquer commit de entrada ou efetuar push de commits de saída.

  • Para exibir um commit específico, selecione a seta para cima/para baixo e, em seguida, selecione Ver Entrada/Saída.

  • O Lápis mostra o número de alterações não confirmadas no código. Você pode selecionar este ícone para exibir essas alterações na janela Alterações do Git.

O menu Git fornece ferramentas para ações de repositório em seus arquivos. Você pode usar o git fetch, pull, push e sincronização para controle de versão no Visual Studio.

Para obter mais informações sobre como usar o Git com seu aplicativo, consulte Sobre o Git no Visual Studio.

Revisão: Código concluído

Neste tutorial, você fez muitas alterações no aplicativo Calculadora. O aplicativo agora lida com recursos de computação com mais eficiência e lida com a maioria dos erros de entrada do usuário.

Aqui está o código completo, tudo em um só lugar:


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

Próxima etapa

Continue com a segunda parte deste tutorial: