c# - C#解析字符串整数错误?

标签 c# string parsing compiler-errors

我刚开始使用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/

相关文章:

c# - ASP.NET Core 应用程序的 EF Code First 迁移替代方案

c# - 如何在 XNA 中减慢或停止按键

Java:String.getBytes(Charset) 对比。 Charset.encode(String) 与 OutputStream 一起使用

c# - 代码解析C#

parsing - 如何用基于语法的解析器替换宏?

c# - ASP.NET Web-Api 在本地工作但在 IIS7 上部署后不工作

c# - IoC 和 ASP.NET MVC,一切从哪里开始?

swift - 如何在 Swift 4 中增加 Index.String 类型的变量?

java - 为什么 String.equalsIgnoreCase 比较单个字符的大写和小写版本?

c++ - Boost Spirit X3 跳过解析器实现?