Permetre només l'entrada de nombres enters

Funció per controlar l'entrada de dades, de manera que només es permetin nombres enters. És a dir, nombres positius i negatius no decimals. L'única entrada que fa petar el programa és si es prem directament ENTER.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int numEnter;
            numEnter = demanaNumeroEnter(); 
            Console.WriteLine(numEnter);
        }   // FI DEL Main()

        public static int demanaNumeroEnter()
        {
            int numEnter = 0;
            String numeroEnter;
            Console.WriteLine("Escriu un número enter:");
            bool entradaValida = false;
            do
            {
                numeroEnter = Console.ReadLine();
                if (comprovaNumeroEnter(numeroEnter)) { entradaValida = true; }
                else 
                {
                    entradaValida = false;
                    Console.WriteLine("Escriu NOMÉS numeros O BÉ '-' seguit de NÚMEROS:");
                }

            } while (!entradaValida);

            if (entradaValida) { numEnter = Convert.ToInt32(numeroEnter); }
            return numEnter;
        } // FI FUNCIO demanaNumeroEnter()

        public static Boolean comprovaNumeroEnter(String entrada)
        {
            bool entradaValida = true;
            int i = 0;
            while (entradaValida && i < entrada.Length)
            {
                if (i == 0 && entrada.IndexOf('-') == i) 
                { 
                    entradaValida = true;
                    if (entrada.Length==1)
                    {
                        entradaValida = false;
                    }
                    else { i++; }
                }

                if (Char.IsNumber(entrada[i])) 
                { entradaValida = true;
                    i++; }
                else { entradaValida = false; }
            }
            return entradaValida;
        }   // FI FUNCIO comprovaNumeroEnter();
    }
}

Comentaris