C#分析字符串整数错误

本文关键字:整数 错误 字符串 | 更新日期: 2023-09-27 17:59:17

我刚刚开始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");
        }
    }
}

C#分析字符串整数错误

试试这个:

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方法,您可以检查输入的解析是否成功。如果不是,则向控制台打印一条消息。

您可以使用Int32.TryParse方法

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;
        if (Int32.TryParse(agestring, out age))
        {
            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");
        }

    }
}

}