Tutorial: Criar um aplicativo de console simples em C# no Visual Studio (parte 1 de 2)
Neste tutorial, você usará o Visual Studio para criar e executar um aplicativo de console do C# e explorar alguns recursos do IDE (ambiente de desenvolvimento integrado) do Visual Studio. Este tutorial é a primeira parte de uma série com duas partes.
Neste tutorial, você completa as seguintes tarefas:
- Crie um projeto do Visual Studio.
- criar um aplicativo de console em C#.
- Depure o aplicativo.
- Feche seu aplicativo.
- Inspecione o código concluído.
Na parte 2, você estende esse aplicativo para adicionar mais projetos, aprender truques de depuração e referenciar pacotes de terceiros.
Pré-requisitos
Você deve ter o Visual Studio instalado.
Se você ainda não tiver instalado o Visual Studio, acesse a página 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 que você precisa.
Abra o Visual Studio e selecione Criar um novo projeto na janela Iniciar.
Na janela Criar um projeto, escolha C# na lista Linguagem. Em seguida, escolha Windows na lista Plataforma 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.
Observação
Se você o modelo Aplicativo do Console não for exibido, selecione Instalar mais ferramentas e recursos.
No Instalador do Visual Studio, selecione a carga de trabalho de desenvolvimento multiplataforma do .NET Core.
Selecione o botão Modificar no Instalador do Visual Studio. Pode ser necessário salvar o trabalho. Nesse caso, execute essa ação. Selecione Continuar para instalar a carga de trabalho.
Retorne à etapa 2 neste procedimento "Criar um projeto".
Na janela Configurar seu novo projeto, digite ou insira Calculadora na caixa Nome do projeto. Em seguida, selecione Avançar.
Na janela Informações adicionais, verifique se .NET Core 3.1 aparece no campo Estrutura de Destino. Em seguida, selecione Criar.
O Visual Studio abre seu novo projeto, que inclui o código "Olá, Mundo" padrão. Para exibi-lo no editor, selecione o arquivo de código Program.cs na janela Gerenciador de Soluções, que normalmente está no lado direito do Visual Studio.
O código padrão "Olá, Mundo!" chama o método WriteLine para exibir a cadeia de caracteres literal "Olá, Mundo!" na janela do console. Se pressionar F5, você 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.
Abra o Visual Studio e selecione Criar um novo projeto na janela Iniciar.
Na janela Criar um projeto, selecione Todas as linguagens e, em seguida, escolha C# na lista suspensa. Escolha Windows na lista Todas as plataformas e Console na lista Todos os 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.
Observação
Se você o modelo Aplicativo do Console não for exibido, selecione Instalar mais ferramentas e recursos.
No Instalador do Visual Studio, selecione a carga de trabalho de desenvolvimento da área de trabalho do .NET.
Selecione o botão Modificar no Instalador do Visual Studio. Pode ser necessário salvar o trabalho. Nesse caso, execute essa ação. Selecione Continuar para instalar a carga de trabalho.
Retorne à etapa 2 neste procedimento "Criar um projeto".
Na janela Configurar seu novo projeto, digite ou insira Calculadora na caixa Nome do projeto e, em seguida, selecione Avançar.
Na janela Informações adicionais, selecione .NET 8.0 para o campo Estrutura de destino. Em seguida, selecione Criar.
O Visual Studio abre seu novo projeto, que inclui o código "Olá, Mundo" padrão. Para exibi-lo no editor, selecione o arquivo de código Program.cs na janela Gerenciador de Soluções, que normalmente está no lado direito do Visual Studio.
A declaração de código único chama o método WriteLine para exibir a cadeia de caracteres literal "Olá, Mundo!" na janela do console. Se pressionar F5, você 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.
Observação
A partir do .NET 6, novos projetos que usam o modelo do console geram código diferente das versões anteriores. Para saber mais, confira a página Novos modelos C# geram instruções de nível superior.
Criar o aplicativo
Nesta seção, você concluirá as seguintes tarefas:
- Explore os cálculos matemáticos básicos de inteiro em C#.
- Adicione o código para criar um aplicativo de calculadora básica.
- Depure o aplicativo para encontrar e corrigir erros.
- Refine o código para torná-lo mais eficiente.
Explorar a matemática de inteiros
Comece com alguns cálculos matemáticos básicos de inteiro em C#.
No editor de códigos, exclua o código padrão "Olá, Mundo".
Especificamente, exclua a linha com o texto:
Console.WriteLine("Hello World!");
.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.
Selecione o botão verde Iniciar ao lado da Calculadora para compilar e executar seu programa ou pressione F5.
Uma janela do console é aberta mostrando a soma de 42 + 119, que é 161.
(Opcional) Você pode alterar o operador para alterar o resultado. Por exemplo, você pode alterar o operador
+
na linha de códigoint c = a + b;
para-
em uma subtração,*
para multiplicação ou/
para divisão. Em seguida, quando você executar o programa, o resultado também será alterado.Feche a janela do console.
No painel direito do Gerenciador de Soluções, selecione Program.cs para exibir o arquivo no editor de código
No editor de código, substitua o código padrão "Olá, Mundo" que diz
Console.WriteLine("Hello World!");
.Substitua a linha pelo código a seguir:
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.
Para compilar e executar seu aplicativo, pressione F5 ou selecione a seta verde ao lado do nome Calculadora na barra de ferramentas superior.
Uma janela do console é aberta mostrando a soma de 42 + 119, que é 161.
Feche a janela do console.
Opcionalmente, você pode alterar o operador para alterar o resultado. Por exemplo, você pode alterar o operador
+
na linha de códigoint c = a + b;
para-
em uma subtração,*
para multiplicação ou/
para divisão. Quando você executa o aplicativo, o resultado é alterado adequadamente.
Adicionar código para criar uma calculadora
Continue com a adição de um conjunto mais complexo de código de calculadora ao seu projeto.
No editor de código, substitua todo o código em Program.cs pelo novo código:
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(); } } }
Selecione o botão Calculadora ou pressione F5 para executar seu aplicativo.
Uma janela do console é aberta.
Na janela do console, siga os prompts para adicionar os números 42 e 119.
O aplicativo deverá ser semelhante à seguinte captura de tela:
No editor de código, substitua todo o código em Program.cs pelo novo código:
// 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();
Selecione o botão Calculadora ou pressione F5 para executar seu aplicativo.
Uma janela do console é aberta.
Na janela do console, siga os prompts para adicionar os números 42 e 119.
O aplicativo deverá ser semelhante à seguinte captura de tela:
Adicionar funcionalidade decimal
Agora, ajustaremos o código para adicionar mais funcionalidade.
O aplicativo de calculadora atual só aceita e retorna 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.
Para corrigir o código para melhorar a precisão manipulando decimais:
Em Program.cs no editor do Visual Studio, pressione Ctrl+H para abrir o controle Localizar e Substituir.
Digite int no controle e float no campo Substituir.
Selecione os ícones para Diferenciar maiúsculas e minúsculas e Coincidir palavra inteira no controle ou pressione Alt+C e Alt+W.
Selecione o ícone Substituir tudo ou pressione Alt+A para executar a pesquisa e substituir.
Execute novamente o aplicativo de calculadora e divida o número 42 pelo número 119.
O aplicativo agora retorna um numeral decimal em vez de zero.
Agora o aplicativo pode produzir resultados decimais. Fala mais alguns ajustes no código, de modo que o aplicativo possa calcular decimais também.
Use o controle Localizar e Substituir para alterar cada instância da variável
float
paradouble
e alterar cada instância do métodoConvert.ToInt32
paraConvert.ToDouble
.Execute o 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.
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, confira Introdução ao 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.
Observação
À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 tratar esse erro. Em Program.cs, substitua o código de 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.ToInt32(Console.ReadLine());
}
Console.WriteLine($"Your result: {num1} / {num2} = " + (num1 / num2));
break;
}
Depois que você substituir o código, a seção com a instrução switch
deverá ser semelhante à seguinte captura de tela:
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.
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ódigos.
Para evitar essa exceção, você pode refatorar o código inserido anteriormente.
Revisar o código
Em vez de depender da classe program
para tratar todo o código, você pode dividir seu aplicativo em duas classes: Calculator
e Program
.
A classe Calculator
faz a maior parte do trabalho de cálculo e a classe Program
cuida do trabalho de tratamento de erros e da interface do usuário.
Vamos começar.
Em Program.cs, exclua tudo e adicione a nova classe
Calculator
a seguir: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; } }
Além disso, adicione 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 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; } }
Selecione o botão Calculadora ou pressione F5 para executar seu aplicativo.
Siga os prompts e divida o número 42 pelo número 119. O resultado deve ter aparência semelhante à captura de tela a seguir:
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, você receberá uma resposta de erro apropriada.
Feche o aplicativo
Se você ainda não fez isso, feche o aplicativo de calculadora.
Feche o painel Saída no Visual Studio.
No Visual Studio, pressione Ctrl+S para salvar o aplicativo.
Adicionar o controle do código-fonte do Git
Agora que você criou um aplicativo, pode ser interessante adicioná-lo a um repositório Git. O Visual Studio facilita esse processo com as ferramentas de Git que você pode usar diretamente no IDE.
Dica
O Git é o sistema de controle de versão moderno mais usado, portanto, 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 local para começar. Lá você vai encontrar roteiros, um livro online popular e vídeos de Conceitos Básicos do Git.
Para associar seu código ao Git, comece criando um repositório Git no local em que o código está localizado:
Na barra de status no canto inferior direito do Visual Studio, selecione Adicionar ao Controle do Código-Fonte e selecione Git.
Na caixa de diálogo Criar um repositório Git, entre no GitHub.
O nome do repositório é preenchido automaticamente com base no local da sua pasta. O novo repositório é privado por padrão, o que significa que você é o único que pode acessá-lo.
Dica
Não importa 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.
Selecione Criar e Efetuar Push.
Depois de criar o repositório, você verá detalhes do status na barra de status.
O primeiro ícone com as setas mostra quantos commits de saída/entrada estão no branch atual. Você pode usar esse ícone para efetuar pull de qualquer commit de entrada ou efetuar push de commits de saída. Você também pode optar por exibir primeiro esses commits. Para fazer isso, selecione o ícone e selecione Exibir Saída/Entrada.
O segundo ícone com 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.
Para saber mais sobre como usar o Git com seu aplicativo, veja a documentação de controle de versão do Visual Studio.
Revisão: conclusão do código
Neste tutorial, você fez muitas alterações no aplicativo Calculadora. O aplicativo agora manipula recursos de computação com mais eficiência e trata a maioria dos erros de entrada do usuário.
Este é 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 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;
}
}
Próximas etapas
Prossiga para a segunda parte deste tutorial: