我刚开始使用C#。今天,我正在尝试编写一个非常简单的应用程序。但是,当我使用console.readkey时,如果输入的不是数字,它将立即崩溃。
我完全理解它尝试解析数字并将其转换为字符串,但是,如果有人不插入数字,如何防止应用程序崩溃或失败。我已经四处搜寻,但显然这是很具体的事情。
我要做的就是将所有非数字的内容无效或解析出来,以免使应用程序感到困惑和关闭。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Console.Write("what is your age?");
string agestring = Console.ReadLine();
int age = Int32.Parse(agestring);
if (age >= 21)
{
Console.WriteLine("congrats, you're you can get drunk!");
}
else if (age < 21)
{
Console.WriteLine("Sorrrrrryyyyyyy =(");
}
else
{
Console.WriteLine("Sorry Thats not a valid input");
}
}
}
最佳答案
试试这个:
int age;
if(Int32.TryParse(agestring, out age))
{
if (age >= 21)
{
Console.WriteLine("congrats, you're you can get drunk!");
}
else
{
Console.WriteLine("Sorrrrrryyyyyyy =(");
}
}
else
{
Console.WriteLine("Sorry Thats not a valid input");
}
使用
Int32.TryParse
方法,您可以检查输入的解析是否成功。如果不是,则将消息打印到控制台。
关于c# - C#解析字符串整数错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186780/