无法将类型字符串隐式转换为int
Console.WriteLine ("Please enter some numbers"); int sum = 0; for(;;) { string input = Console.ReadLine (); if (string.IsNullOrEmpty (input)) { break; } int inputParsed = int.Parse (input.ToString ()); int sumParsed = int.Parse (sum.ToString ()); sum = sum + input; // throws an error here Console.WriteLine (sum);
我希望我的程序显示用户输入的所有数字的总和,即使我已经解析了所需的所有变量,它也会抛出“无法隐式转换类型’字符串’到’int’”错误。 怎么了?
sum = sum + input; //throws an error here
应该:
sum = sum + inputParsed ;
您正在使用原始输入而不是解析的值。 并且您不需要sumParsed
因为您只需将总和保持在sum
并且您不需要将int转换为字符串然后将其解析回整数。
检查用户的输入是否正确我更喜欢
int userInput = 0; if( int.TryParse( input, out userInput ) == false ) { break; }
这只是一个建议,而不是直接解决您的问题。 有足够的答案=)
int inputParsed = int.Parse (input.ToString ()); //int sumParsed = int.Parse (sum.ToString ());//no need sum = sum + inputParsed ;
我会完全重写这个(你的原始错误是因为你试图将一个string
添加到一个int
,而不是将解析的输入添加为int
)
Console.WriteLine ("Please enter some numbers"); int sum = 0; while (true) { int parsedInput = 0; string input = Console.ReadLine(); if (!string.IsNullOrEmpty(input) && int.TryParse(input, out parsedInput)) { sum += parsedInput; Console.WriteLine (sum); } else break; }