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