TryParse变得烦人

时间:2014-08-04 10:00:39

标签: c# tryparse

我有这个非常烦人的问题(我知道这是基本的东西)但是当我尝试使用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();      
        }
    }
}

4 个答案:

答案 0 :(得分:2)

摆脱对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();
    }
}

答案 1 :(得分:2)

使用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);                 
}

答案 2 :(得分:1)

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

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

所以你总能像这样使用它。

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

答案 3 :(得分:1)

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

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

ConsoleWriteLine("integer");

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