我是c#development的新手,我正在尝试创建一个汽车控制台应用程序。我正在努力的部分是,我正在创建一个列表,让用户输入汽车的价值,一旦用户完成,他/她应该只能输入以显示所有添加的汽车的价值起来。
以下是编译器的错误:
未处理的类型' System.FormatException'发生在mscorlib.dll中附加信息:输入字符串的格式不正确。
以下是我收到错误的代码:
Console.Clear();
List<int> myCars = new List<int>();
Console.WriteLine("Enter the car into the lot");
int input = int.Parse(Console.ReadLine());
myCars.Add(input);
while (input.ToString() != "") //The != is not equal to
{
Console.WriteLine("Please enter another integer: ");
input = int.Parse(Console.ReadLine()); //This doesent work I dont know why
int value;
if (!int.TryParse(input.ToString(), out value))
{
Console.WriteLine("Something happened I dont know what happened you figure it out I dont want to");
}
else
{
myCars.Add(value);
}
}
if (input.ToString() == "Done")
{
int sum = 0;
foreach (int value in myCars)
{
sum += value;
Console.WriteLine("The total of all the cars on the lot are : " + " " + value.ToString());
}
Console.ReadLine();
}
答案 0 :(得分:0)
错误是因为“Done”无法解析为整数。 你也有一些语义错误。这是更正后的代码:
Console.Clear();
List<int> myCars = new List<int>();
Console.WriteLine("Enter the car into the lot");
string input = Console.ReadLine();
int IntValue;
if (int.TryParse(input, out IntValue))
{
myCars.Add(IntValue);
}
while (input != "Done") //The != is not equal to
{
Console.WriteLine("Please enter another integer: ");
input = Console.ReadLine();
if (int.TryParse(input, out IntValue))
{
myCars.Add(IntValue);
}
}
int sum = 0;
foreach (int value in myCars)
{
sum += value;
}
Console.WriteLine("The total of all the cars on the lot are : " + " " + sum.ToString());
Console.ReadLine();
答案 1 :(得分:0)
您使用的Int32.Parse()方法会抛出FormatException,以防您尝试解析不是整数的值,例如一个字符串(在你的情况下为“完成”) https://msdn.microsoft.com/en-us/library/b3h1hf19(v=vs.110).aspx
你应该使用Int32.TryParse(),它会在你的解析失败时返回false https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx