Validar Campos Numéricos en C# (Consola)

Aunque en el ámbito académico muchas veces no suele calificarse la validación de los datos, es importante aprender a hacerlo desde que se está aprendiendo a programar. Este factor es fundamental en la programación de aplicaciones a nivel profesional.

Anteriormente me limité a codificar los algoritmos para los números primos y la serie de fibonacci, pero en ninguno de los dos ejemplos validé que la entrada de datos sea numérica. Si ejecutamos alguno de los programas listados e ingresamos un valor no valido (por ejemplo, una cadena de caracteres), se generará un error.

El siguiente código pedirá un valor numérico entero y validará que la información ingresada por teclado sea, en efecto, un valor entero. Si el valor ingresado no corresponde a un valor numérico entero, el programa mostrará un mensaje advirtiéndonos del error y nos pedirá que ingresemos de nuevo el valor.


static void Main(string[] args)
        {
            int n;
            Console.Write("Ingrese un número : ");
            string linea = Console.ReadLine(); //Guardamos en una cadena el dato ingresado por teclado
            ValidarEntrada(ref linea);      //A través de un subprograma, validamos el dato almacenado pasandolo por referencia
            n = int.Parse(linea);       //Una vez validado que el dato ingresado por teclado es un entero, lo convertimos
            Console.WriteLine("El valor numérico ingresado es : " + n);
            Console.ReadKey();            
        }

        private static void ValidarEntrada(ref string linea)
        {
            //Si la variable linea, pasada por referencia no entra al bucle es porque el valor SÍ es numérico
            //Si logra entrar, quiere decir que no es numérico y nos generará un error
            while(!Int32.TryParse(linea, out int n))
            {
                Console.WriteLine("\nERROR. El valor ingresado debe ser numérico\n");
                Console.Write("Ingrese un número : ");
                linea = Console.ReadLine();
            }
        }

El método TryParse se utiliza para intentar convertir a un valor numérico entero el valor contenido en la variable de tipo cadena (linea). Devolverá true si logra convertir el valor a un entero y false en caso contrario.

El código del programa en .Net lo puedes descargar de aquí.

No hay comentarios:

Publicar un comentario