TryParse变得很烦人

本文关键字:TryParse | 更新日期: 2023-09-27 18:16:20

我遇到了这个非常烦人的问题(我知道这是基本的东西),但是当我尝试使用tryparse时,我必须在它说整数之前输入2个值,我希望它在1次尝试后说整数。(顺便说一句,我必须使用tryparse)下面是一个例子。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int results = 0;
            Console.WriteLine("how old are you?");
            int.TryParse (Console.ReadLine(), out results);
            if (int.TryParse (Console.ReadLine(), out results))
            {
                Console.WriteLine("integer");                 
            }     
            else
            {
                Console.WriteLine("not an integer");     
            }
            Console.ReadLine();      
        }
    }
}

TryParse变得很烦人

Console.ReadLine()int.TryParse使用变量:

Console.WriteLine("how old are you?");
string input = Console.ReadLine().Trim();
bool success = int.TryParse(input, out results);
if ( success )
{
    Console.WriteLine("{0} is an integer", input); // results has the correct value                
}
else
{
    Console.WriteLine("{0} is not an integer", input);                 
}

去掉对TryParse的第一个冗余调用,例如

class Program
{
    static void Main(string[] args)
    {
        int results = 0;
        Console.WriteLine("how old are you?");
        //int.TryParse(Console.ReadLine(), out results); <-- remove this
        if (int.TryParse (Console.ReadLine(), out results))
        {
            Console.WriteLine("integer");
        }
        else
        {
            Console.WriteLine("not an integer");
        }
        Console.ReadLine();
    }
}

TryParse将数字的字符串表示形式转换为其等效的32位有符号整数。

返回值表示转换是否成功。

所以你可以这样使用

if (int.TryParse (Console.ReadLine(), out results))
{
    Console.WriteLine("integer");
}

在其他答案之上,您可能希望在while loop中执行TryParse,以便用户必须输入有效的整数

while(!int.TryParse(ConsoleReadLine(), out results)
     Console.WriteLine("not an integer");
ConsoleWriteLine("integer");

为了更好地解释当前的问题,您要求用户输入两个整数,但您只关心第二个整数。第一个被分配给results但是当你下次调用TryParse的时候它会被覆盖而不会被使用