输入验证 - 数字与字母

0 c# validation

我正在创建一个简短的C#控制台程序,它将使用0-10的随机数询问10个附加问题.然后它告诉用户他们有多少正确或不正确的答案.我试图找到一种方法来验证我的用户输入是一个数字而不是一个字母.我发布了目前为止创建的代码,但可以使用一些帮助.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            int input;
            int correct = 0;
            int incorrect = 0;
            int questions = 10;
            int[] solutions = new int[21];
            int[] answers = new int[21];
            int[] number1 = new int[21];
            int[] number2 = new int[21]; 

            Random number = new Random();

            Console.WriteLine("  This is a test of your basic addition skills. ");
            Console.WriteLine("  Please answer the random addition question below ");
            Console.WriteLine("  with a number from 1 - 20 and press enter to get the");
            Console.WriteLine("  next of 10 questions.  At the end of the questions");
            Console.WriteLine("  your results will be calculated and presented to you.");
            Console.WriteLine("");
            Console.WriteLine("");

            while (i < questions)
            {
                number1[i] = number.Next(0, 10);
                number2[i] = number.Next(0,10);
                solutions[i] = (number1[i] + number2[i]);

                //Console.WriteLine("{0} +  {1} =  {2}", number1[i], number2[i],solutions[i]);  

                Console.Write("  {0} +  {1} =  ", number1[i], number2[i]);

                answers[i] = Convert.ToInt32(Console.ReadLine()); // original code      

                //input = Convert.ToInt32(Console.ReadLine());
                //if (input > 0 && input <21)
                //{
                //   Console.WriteLine("YOur answer is: {0}", input);
                //}
                //else
                //Console.WriteLine("YOur answer is not valid");

                if (solutions[i] == answers[i])
                {
                    Console.WriteLine("  Correct");
                    correct++;
                }
                else
                {
                    Console.WriteLine("  Your answer is incorrect, the correct answer is {0}", solutions[i]);
                    incorrect++;

                }
                //Console.WriteLine("{0}", answers[i]);

                //int sum = numberone + numbertwo;
                //answers[sum]++;
                i++;
            }

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("The number correct is: {0}, The number incorrect is: {1}", correct, incorrect);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Wim*_*dse 14

使用int.TryParse()如:

bool isNumber=false;
int number;
while (!isNumber)
{
  string txt = Console.ReadLine();
  if (!int.TryParse(txt, out number))
  {
    // not a number, handle it
    Console.WriteLine("This is not a number, enter a number. For real now.");
  }
  else
  {
    // use number
    answers[i] = number;
    isNumber = true;
  }
}
Run Code Online (Sandbox Code Playgroud)