Tutorial: Creación de una aplicación de consola de C# sencilla en Visual Studio (parte 1 de 2)
En este tutorial, usa Visual Studio para crear y ejecutar una aplicación de consola de C# y explorar algunas características del entorno de desarrollo integrado (IDE) de Visual Studio. Este tutorial es la primera parte de una serie de tutoriales de dos partes.
En este tutorial, hizo lo siguiente:
- Crear un proyecto de Visual Studio.
- Crear una aplicación de consola de C#.
- Depure la aplicación.
- Cerrar la aplicación.
- Inspeccionar el código completo.
En la parte 2, ampliará esta aplicación para agregar más proyectos, aprender trucos de depuración y hacer referencia a paquetes de terceros.
Prerrequisitos
Debe tener instalado Visual Studio.
Si todavía no ha instalado Visual Studio, vaya a la página de descargas de Visual Studio para instalarlo de forma gratuita.
Si todavía no ha instalado Visual Studio, vaya a la página de descargas de Visual Studio para instalarlo de forma gratuita.
Crear un proyecto
Para empezar, cree un proyecto de aplicación de C#. En el tipo de proyecto se incluyen todos los archivos de plantilla que necesita.
Abra Visual Studio 2017.
En la barra de menús superior, elija Archivo > Nuevo > Proyecto. (Como alternativa, presione Ctrl+Mayús+N).
En el panel izquierdo del cuadro de diálogo Nuevo proyecto, expanda C# y elija .NET Core. En el panel central, elija Aplicación de consola (.NET Core) . Después, asigne al archivo el nombre Calculator.

Agregar una carga de trabajo (opcional)
Si no ve la plantilla de proyecto Aplicación de consola (.NET Core) , puede obtenerla si agrega la carga de trabajo Desarrollo multiplataforma de .NET Core. Esta es la manera de hacerlo.
Opción 1: Uso del cuadro de diálogo Nuevo proyecto
Elija el vínculo Abrir el Instalador de Visual Studio en el panel de la izquierda del cuadro de diálogo Nuevo proyecto.

Se iniciará el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo multiplataforma de .NET Core y, después, elija Modificar.

Opción 2: Uso de la barra del menú Herramientas
Cancele para salir del cuadro de diálogo Nuevo proyecto y, en la barra de menús superior, seleccione Herramientas > Obtener herramientas y características.
Se iniciará el Instalador de Visual Studio. Elija la carga de trabajo Desarrollo multiplataforma de .NET Core y, después, elija Modificar.
Abra Visual Studio y elija Crear un nuevo proyecto en la ventana Inicio.

En la ventana Crear un nuevo proyecto, elija C# en la lista Idioma. A continuación, seleccione Windows en la lista Plataforma y Consola en la lista Tipos de proyecto.
Después de aplicar los filtros de lenguaje, plataforma y tipo de proyecto, elija la plantilla Aplicación de consola y, luego, seleccione Siguiente.
Nota
Si no ve la plantilla Aplicación de consola, seleccione Instalar más herramientas y características.

Luego, en el Instalador de Visual Studio, elija la carga de trabajo Desarrollo multiplataforma de .NET Core.

Después, elija el botón Modificar en el Instalador de Visual Studio. Es posible que se le pida que guarde su trabajo; si es así, hágalo. Seguidamente, elija Continuar para instalar la carga de trabajo. Luego, vuelva al paso 2 de este procedimiento "Crear un proyecto".
En la ventana Configurar el nuevo proyecto, escriba Calculator en el cuadro Nombre del proyecto. Después, elija Siguiente.
En la ventana Información adicional, .NET Core 3.1 ya debe estar seleccionado para la plataforma de destino. Si no es así, seleccione .NET Core 3.1. Luego, elija Crear.
Visual Studio abre el nuevo proyecto, que incluye código predeterminado de "Hola mundo".
Abra Visual Studio y elija Crear un nuevo proyecto en la ventana Inicio.

En la ventana Crear un nuevo proyecto, seleccione Todos los lenguajes y, a continuación, elija C# en la lista desplegable. Seleccione Windows en la lista Todas las plataformas y Consola en la lista Todos los tipos de proyecto.
Después de aplicar los filtros de lenguaje, plataforma y tipo de proyecto, elija la plantilla Aplicación de consola y, luego, seleccione Siguiente.
Nota
Si no ve la plantilla Aplicación de consola, seleccione Instalar más herramientas y características.

En el Instalador de Visual Studio, elija la carga de trabajo de desarrollo de escritorio de .NET y, a continuación, seleccione Modificar.

En la ventana Configurar el nuevo proyecto, escriba Calculator en el cuadro Nombre del proyecto y, a continuación, seleccione Siguiente.

En la ventana Información adicional, .NET 6.0 ya debe estar seleccionado para la plataforma de destino. Seleccione Crear.

Visual Studio abre el nuevo proyecto, que incluye código predeterminado de "Hola mundo".
Creación de la aplicación
En esta sección:
- Explora algunos cálculos de enteros básicos en C#.
- Agrega código para crear una aplicación de calculadora básica.
- Depura la aplicación para buscar y corregir errores.
- Perfecciona el código para que sea más eficaz.
Análisis de las operaciones matemáticas con enteros
Empiece con algunos cálculos básicos de enteros en C#.
En el editor de código, elimine el código predeterminado "Hello World".

En concreto, elimine la línea que dice
Console.WriteLine("Hello World!");.En su lugar, escriba este código:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();Tenga en cuenta que, al hacerlo, la función IntelliSense en Visual Studio le ofrece la opción de autocompletar la entrada.
Nota
La animación siguiente no está pensada para duplicar el código anterior. Su único fin es mostrar cómo funciona la característica Autocompletar.

Elija el botón verde Inicio junto a Calculadora para compilar y ejecutar el programa, o presione F5.

Se abre una ventana de consola que muestra la suma de 42+119, cuyo resultado es 161.

(Opcional) Puede modificar el operador para cambiar el resultado. Por ejemplo, puede cambiar el operador
+en la línea de códigoint c = a + b;por-para la resta,*para la multiplicación o/para la división. A continuación, al ejecutar el programa, el resultado también cambia.Cierre la ventana de la consola.
En el Explorador de soluciones, en el panel derecho, seleccione Program.cs para mostrar el archivo en el editor de código
En el editor de código, reemplace el código predeterminado "Hello World" que dice
Console.WriteLine("Hello World!");.
Reemplace la línea por el código siguiente:
int a = 42; int b = 119; int c = a + b; Console.WriteLine(c); Console.ReadKey();Si escribe el código, la característica IntelliSense de Visual Studio le ofrece la opción de autocompletar la entrada.
Nota
La animación siguiente no está pensada para mostrar el código anterior, sino solo para mostrar cómo funciona IntelliSense.

Para compilar y ejecutar la aplicación, presione F5 o seleccione la flecha verde junto al nombre Calculator en la barra de herramientas superior.

Se abre una ventana de consola que muestra la suma de 42+119, cuyo resultado es 161.

Cierre la ventana de la consola.
Opcionalmente, puede modificar el operador para cambiar el resultado. Por ejemplo, puede cambiar el operador
+en la línea de códigoint c = a + b;por-para la resta,*para la multiplicación o/para la división. Al ejecutar la aplicación, el resultado cambia en consecuencia.
Incorporación de código para crear una calculadora
Proceda a agregar al proyecto un conjunto más complejo de código de la calculadora.
En el editor de código, reemplace todo el código de program.cs por el siguiente código nuevo:
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(); } } }Seleccione el botón Calculator o presione F5 para ejecutar la aplicación.
Se abre una ventana de consola.
En la ventana de consola, siga las indicaciones para agregar los números 42 y 119 juntos.
La ventana de consola debe ser similar a la de la siguiente captura de pantalla:

Adición de funcionalidad decimal
Ahora, retoque el código para agregarle más funcionalidad.
La aplicación Calculator actual acepta y devuelve números enteros. Por ejemplo, si ejecuta la aplicación y divide el número 42 entre el número 119, el resultado es cero, lo cual no es correcto.

Para corregir el código a fin de mejorar la precisión mediante el control de decimales:
En program.cs en el editor de Visual Studio, presione Ctrl+H para abrir el control Buscar y reemplazar.
Escriba int en el control y escriba float en el campo Reemplazar.
Seleccione los iconos de Coincidir mayúsculas y minúsculas y Solo palabras completas en el control, o presione Alt+C y Alt+W.
Seleccione el icono Reemplazar todo o presione Alt+A para ejecutar la búsqueda y reemplazar.

Vuelva a ejecutar la aplicación Calculator y divida el número 42 entre el número 119.
Ahora la aplicación devuelve un número decimal en lugar de cero.

Ahora la aplicación puede generar resultados decimales. Haga algunos retoques más en el código para que la aplicación calcule decimales también.
Use el control Buscar y reemplazar para cambiar cada instancia de la variable
floatadoubley cambiar cada instancia del métodoConvert.ToInt32aConvert.ToDouble.Ejecute la aplicación Calculator y divida el número 42.5 entre el número 119.75.
Ahora la aplicación acepta valores decimales y devuelve un número decimal más largo como resultado.

En la sección Revisar el código, reduce el número de posiciones decimales en los resultados.
Depurar la aplicación
Ha mejorado la aplicación de calculadora básica, pero la aplicación aún no controla las excepciones, como los errores de entrada del usuario. Por ejemplo, si los usuarios intentan dividir entre cero o escribir un carácter inesperado, es posible que la aplicación deje de funcionar, devuelva un error o devuelva un resultado no numérico inesperado.
Vamos a ver algunos errores comunes de entrada de usuario, a localizarlos en el depurador si aparecen allí y a corregirlos en el código.
Sugerencia
Para más información sobre el depurador y cómo funciona, consulte Primer vistazo al depurador de Visual Studio.
Corregir el error "división entre cero"
Al intentar dividir un número entre cero, es posible que la aplicación de consola se inmovilice y, luego, muestre el problema en el editor de código.

Nota
A veces, la aplicación no se inmoviliza ni el depurador muestra un error de división por cero, sino que la aplicación puede devolver un resultado no numérico inesperado, como un símbolo de infinito. La corrección de código siguiente sigue siendo válida.
Para cambiar el código para controlar este error:
En program.cs, reemplace el código entre
case "d":y el comentario que dice// Wait for the user to respond before closingpor el código siguiente:// 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; }Después de reemplazar el código, la sección con la instrucción
switchdebe ser similar a la de la siguiente captura de pantalla:
Ahora, al dividir cualquier número entre cero, la aplicación pide otro número y sigue pidiendo hasta que proporciona un número distinto de cero.

Corregir el error de "formato"
Si escribe un carácter alfabético cuando la aplicación espera un carácter numérico, la aplicación se inmoviliza. Visual Studio señala qué es incorrecto en el editor de código.


Para evitar esta excepción, puede refactorizar el código que ha especificado anteriormente.
Revisar el código
En lugar de usar la clase program para controlar todo el código, puede dividir su aplicación en dos clases: Calculator y Program.
La clase Calculator controla la mayor parte del trabajo de cálculo, mientras que la clase Program controla la interfaz de usuario y el trabajo de captura de errores.
Comencemos.
En program.cs, elimine todo en el espacio de nombres
Calculatorentre las llaves de apertura y cierre:using System; namespace Calculator { }Entre las llaves, agregue la siguiente clase
Calculatornueva: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; } }Agregue también una nueva clase
Program, como se indica a continuación: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; } }Seleccione el botón Calculator o presione F5 para ejecutar la aplicación.
Siga las indicaciones y divida el número 42 entre el número 119. Los resultados deben presentar un aspecto similar al de la captura de pantalla siguiente:


Ahora puede escribir más ecuaciones hasta que decida cerrar la aplicación de consola. También hay menos posiciones decimales en los resultados. Y si escribe un carácter incorrecto, obtendrá una respuesta de error adecuada.
Cierre la aplicación
Si aún no lo ha hecho, cierre la aplicación de calculadora.
Cierre el panel Salida en Visual Studio.

En Visual Studio, presione Ctrl+G para guardar la aplicación.
Adición de control de código fuente Git
Ahora que ha creado una aplicación, es posible que quiera agregarla a un repositorio de Git. Tenemos lo que necesita. Visual Studio facilita el proceso con las herramientas de Git que puede usar directamente desde el IDE.
Sugerencia
Git es el sistema de control de versiones moderno más usado, por lo que, tanto si es un desarrollador profesional como si está aprendiendo a codificar, Git puede ser muy útil. Si ha empezado a usar Git recientemente, el sitio web https://git-scm.com/ es un buen punto de partida. Allí encontrará hojas de referencia rápida, un libro en línea conocido y vídeos de conceptos básicos de Git.
Para asociar el código a Git, empiece por crear un nuevo repositorio de Git donde se encuentra el código. A continuación se muestra cómo hacerlo:
En la barra de estado de la esquina inferior derecha de Visual Studio, seleccione Agregar al control de código fuente y, a continuación, Git.
Cuadro de diálogo Crear un repositorio GIT inicie sesión en GitHub.
El nombre del repositorio se rellena automáticamente en función de la ubicación de la carpeta. De forma predeterminada, el nuevo repositorio es privado, lo que significa que usted es el único que puede acceder a él.
Sugerencia
Tanto si el repositorio es público como privado, es mejor tener una copia de seguridad remota del código almacenada de forma segura en GitHub. Incluso si no trabaja con un equipo, un repositorio remoto pone el código a su disposición desde cualquier equipo.
Seleccione Crear e insertar.
Después de crear el repositorio, verá los detalles de estado en la barra de estado.
El primer icono con las flechas muestra cuántas confirmaciones salientes o entrantes hay en la rama actual. Puede usar este icono para extraer las confirmaciones entrantes o insertar las confirmaciones salientes. Puede elegir ver estas confirmaciones en primer lugar. Para ello, seleccione el icono y, a continuación, Ver salientes y entrantes.
El segundo icono con el lápiz muestra el número de cambios no confirmados en el código. Puede seleccionar este icono para ver esos cambios en la ventana Cambios de Git.
Para obtener más información sobre cómo usar Git con la aplicación, consulte la documentación del control de versiones de Visual Studio.
Revisión: código completado
En este tutorial, ha realizado muchos cambios en la aplicación de calculadora. Ahora la aplicación controla los recursos de cálculo más eficazmente y trata la mayoría de los errores de entrada de usuario.
Este es el código completo:
using System;
namespace Calculator
{
class Calculator
{
public static double DoOperation(double num1, double num2, string op)
{
double result = double.NaN; // Default value is "not-a-number" which we use if an operation, such as division, could result in an error.
// Use a switch statement to do the math.
switch (op)
{
case "a":
result = num1 + num2;
break;
case "s":
result = num1 - num2;
break;
case "m":
result = num1 * num2;
break;
case "d":
// Ask the user to enter a non-zero divisor.
if (num2 != 0)
{
result = num1 / num2;
}
break;
// Return text for an incorrect option entry.
default:
break;
}
return result;
}
}
class Program
{
static void Main(string[] args)
{
bool endApp = false;
// Display title as the C# console calculator app.
Console.WriteLine("Console Calculator in C#\r");
Console.WriteLine("------------------------\n");
while (!endApp)
{
// Declare variables and set to empty.
string numInput1 = "";
string numInput2 = "";
double result = 0;
// Ask the user to type the first number.
Console.Write("Type a number, and then press Enter: ");
numInput1 = Console.ReadLine();
double cleanNum1 = 0;
while (!double.TryParse(numInput1, out cleanNum1))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput1 = Console.ReadLine();
}
// Ask the user to type the second number.
Console.Write("Type another number, and then press Enter: ");
numInput2 = Console.ReadLine();
double cleanNum2 = 0;
while (!double.TryParse(numInput2, out cleanNum2))
{
Console.Write("This is not valid input. Please enter an integer value: ");
numInput2 = Console.ReadLine();
}
// Ask the user to choose an operator.
Console.WriteLine("Choose an operator from the following list:");
Console.WriteLine("\ta - Add");
Console.WriteLine("\ts - Subtract");
Console.WriteLine("\tm - Multiply");
Console.WriteLine("\td - Divide");
Console.Write("Your option? ");
string op = Console.ReadLine();
try
{
result = Calculator.DoOperation(cleanNum1, cleanNum2, op);
if (double.IsNaN(result))
{
Console.WriteLine("This operation will result in a mathematical error.\n");
}
else Console.WriteLine("Your result: {0:0.##}\n", result);
}
catch (Exception e)
{
Console.WriteLine("Oh no! An exception occurred trying to do the math.\n - Details: " + e.Message);
}
Console.WriteLine("------------------------\n");
// Wait for the user to respond before closing.
Console.Write("Press 'n' and Enter to close the app, or press any other key and Enter to continue: ");
if (Console.ReadLine() == "n") endApp = true;
Console.WriteLine("\n"); // Friendly linespacing.
}
return;
}
}
}
Pasos siguientes
Continúe con la segunda parte de este tutorial: