嘿伙计这是我到目前为止所得到的:
static string ConvertToInt()
{
string a = Console.ReadLine();
int num = int.Parse(a);
Console.WriteLine(num);
if (int.TryParse(a, out num))
{
return a;
}
else
{
return "-1";
}
}
我要做的是编写一个自定义的Convert.ToInt函数,而不实际使用库中已有的方法。所以我尝试使用int.Parse。如果用户的输入不是数字,它也应该返回-1。
我的问题是,如果输入“a”,应用程序只会在调试时停止,并且会给出输入字符串格式不正确的错误。
在测试方法时,我创建了一个包含以下修改的新项目:
static void Main(string[] args)
{
string a = Console.ReadLine();
int num = int.Parse(a);
Console.WriteLine(num);
if (int.TryParse(a, out num))
{
Console.WriteLine(a);
}
else
{
Console.WriteLine("-1");
}
}
提前致谢。
答案 0 :(得分:2)
删除第一个Parse
并将其保留为int num;
static void Main(string[] args)
{
string a = Console.ReadLine();
int num;
if (int.TryParse(a, out num))
{
Console.WriteLine(a);
}
else
{
Console.WriteLine("-1");
}
}
答案 1 :(得分:2)
问题: int.Parse()
在字符串格式不正确时抛出FormatException
。
解决方案:删除int.Parse()
功能,不要为num
变量赋值
试试这个:
string a = Console.ReadLine();
int num;
if (int.TryParse(a, out num))
{
Console.WriteLine(a);
}
else
{
Console.WriteLine("-1");
}