Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何要求用户只输入整数?_C#_If Statement_Integer - Fatal编程技术网

C# 如何要求用户只输入整数?

C# 如何要求用户只输入整数?,c#,if-statement,integer,C#,If Statement,Integer,我想让用户输入一个数字,包括一个if语句选项。如果用户输入字母,最后一个问题将再次被询问 我试过这个,但似乎它只适用于字符串 Console.Write("Write a number:"); int num = Convert.ToInt32(Console.ReadLine()); if (!int.TryParse(age, out num)) while(!int.TryParse(age, o

我想让用户输入一个数字,包括一个if语句选项。如果用户输入字母,最后一个问题将再次被询问 我试过这个,但似乎它只适用于字符串

        Console.Write("Write a number:");
        int num = Convert.ToInt32(Console.ReadLine());

        if (!int.TryParse(age, out num))
            while(!int.TryParse(age, out num))
            {
             Console.WriteLine(...);
             // ....
            }

我在当前项目中使用了一个函数,它可能会帮助您,它只是检查输入字符串是否只包含数字:

bool isDigitsOnly(string inputString)
{
    foreach (char c in inputString)
    {
        if (c < '0' || c > '9')
            return false;
    }
    return true;
}
bool仅限数字(字符串输入字符串)
{
foreach(inputString中的字符c)
{
如果(c<'0'| c>'9')
返回false;
}
返回true;
}
您可能需要对其进行一些修改以满足您的需要,但它应该工作得足够好

让我们提取用于此目的的方法:我们将要求用户输入有效值,直到他或她提供为止。所以我们有一个循环:

然后你就可以把它当作

   int age = ReadInteger("Please, input age");

感谢您的反馈如果答案有帮助,请记住将其标记为已接受,以便其他人不要尝试回答此问题。感谢您的反馈对我也起到了作用。不过,这也将接受输入“123456789001234567890”,该输入太长,无法转换为
int
。它不会接受“-1”,它是一个完全有效的
int
   int age = ReadInteger("Please, input age");