Crear una aplicación de Consola:
Para esto, deberemos ir a File->New->Project si usas Visual Studio, pero con cualquier otro IDE debe ser algo parecido. Entonces se mostrará una nueva ventana como la de la figura, seleccionamos C# en el menu izquierdo y luego como tipo de proyecto marcamos “Console Apliccation”, le ponemos un nombre al proyecto y le damos Ok. Ya estaremos listos para empezar con el código.El principal motivo de este post, es que la mayor parte de los que leen este blog no saben como interactuar con el usuario a través de la consola (lo cual es comprensible), y no tienen una forma dinámica de probar sus códigos. Generalmente cuando nos enseñan a programar, parten de la parte de como crear métodos, la sintaxis del lenguaje, las estructuras de control (for, foreach, etc) y se pasan por alto la parte de como crear una aplicación, donde el usuario vea resultados a traves de la consola. Bueno, empecemos desde 0:
Métodos útiles para trabajar con la consola
Para interactuar con el usuario es que existen algunos métodos básicos cuando trabajamos con la Consola. Veamos los más usados:1- Console.WriteLine();
Escribe una nueva linea en la consola, es como presionar Enter y escribir una linea. Por ejemplo, podemos hacer:
Console.WriteLine(“Lo que quiera q salga en la consola”);
También podremos imprimir las variables de nuestro programa, para esto hay dos formas, pero veamos mejor dos ejemplos que son lo mismo:
//declaramos dos variables string nombre = "Invitado"; int edad = 22; //Imprimimos una linea en la consola de dos formas distintas Console.WriteLine("Tu nombre es: "+nombre+" y tienes " + edad + " años."); //En C# se usa el operador + para concatenar cadenas Console.WriteLine("Tu nombre es {0} y tienes {1} años", nombre, edad);
Como ven la segunda vía es mucho más simple, solo debes recordar que el numero que está entre cochetes, es el indice del parámetro que se pasa al final del método.2- Console.Write()
Hace casi lo mismo que Console.WriteLine() pero sin cambiar de línea, o sea… concatena el texto que le pasemos al método con lo que se haya escrito hasta ese momento en la consola.
3- Console.ReadLine()
Se usa para leer lo que el usuario escribió en la consola, y podemos guardarlo en una variable para despues usarlo en nuestro programa. No hay que pasarle ningún parámetro y el programa solo continuará cuando el usuario teclee alguna línea y presione Enter. Podemos hacer algo como esto:
Console.WriteLine("Escriba su nombre"); string nombre = Console.ReadLine();
int x = int.Parse(Console.ReadLine();
4-Console.ReadKey()
Este método resulta importante algunas veces, sobre todo cuando queremos darle varias opciones al usuario (a, b, c, d). Aunque se puede utilizar Console.ReadLine(). En este caso, este método lo que devuelve es un objeto de tipo ConsoleKeyInfo, y se puede utilizar de la siguiente forma, por ejemplo:
Console.WriteLine("Presiona una tecla"); ConsoleKeyInfo c = Console.ReadKey(); Console.WriteLine("Presionaste la tecla "+ c.KeyChar);
static void Main(string[] args)
public static int DameEdad(int dia, int mes, int año) { //Usamos la clase DateTime y un método estatico para restar fechas DateTime fecha_nacimiento = new DateTime(año, mes, dia); TimeSpan edad = DateTime.Now.Subtract(fecha_nacimiento); return (edad.Days/365); }
Ahora veamos como programar el método Main para interactuar con el usuario, pedirle la fecha, y encargarnos que la introduzca correctamente. El código sería algo así:
private static void Main(string[] args) { //Variables que usaremos para la fecha de nacimiento int dia_nacimiento, mes_nacimiento, año_nacimiento=0; Console.WriteLine("Escriba su nombre"); string nombre = Console.ReadLine(); Console.WriteLine("Hola {0}, bienvenido a mi aplicacion!",nombre); Console.WriteLine("Por favor, introduce tu fecha de nacimiento:"); //El while solo termina cuando se hace break while (true) { //Pedimos el dia y lo validamos Console.Write("Dia de nacimiento: "); dia_nacimiento = int.Parse(Console.ReadLine()); if (dia_nacimiento < 1 || dia_nacimiento > 31) Console.WriteLine("Por favor, especifique un dia entre 1 y 31"); else //Si el dia es valido, entonces pasamos a pedir el mes break; } while (true) { //Pedimos el mes y lo validamos Console.Write("Mes de nacimiento: "); mes_nacimiento = int.Parse(Console.ReadLine()); if (mes_nacimiento < 1 || mes_nacimiento > 12) Console.WriteLine("Por favor, especifique un mes entre 1 y 12"); else break; } while (true) { //Pedimos el año y lo validamos Console.Write("Año de nacimiento: "); año_nacimiento = int.Parse(Console.ReadLine()); //El año no puede ser posterior a 1900 y anterior al año actual if (año_nacimiento < 1900 || año_nacimiento > DateTime.Now.Year) Console.WriteLine("Por favor, especifique un año entre 1900 y el {0}", DateTime.Now.Year); else break; } //Si llegamos aqui, es porque tenemos una fecha correcta, vamos a calcular la edad con //el método DameEdad() que escribimos antes int edad = DameEdad(dia_nacimiento, mes_nacimiento,año_nacimiento); Console.WriteLine(nombre+", usted tiene " + edad + " años."); Console.WriteLine("Presione cualquier tecla para terminar el programa"); Console.ReadKey(); }
Fuente:
http://www.puntopeek.com/programacion/creando-una-aplicacion-de-consola-c-sharp/