突然间,我在每个控制台应用程序中收到以下错误,包括我已保存的错误。
"The best overloaded method match for 'double.Parse(string)' has some invalid arguments"
你能告诉我一个可能的原因除了'j'是一个Double而不是一个字符串,因为我上周制作的类似应用程序工作得非常好,现在即使它们因为相同的错误而无法正常工作吗? / p>
double i;
System.Console.WriteLine("Enter your weight.");
i = double.Parse(Console.ReadKey());
double j = (0.17 * i);
System.Console.WriteLine("Your weight on the moon will be" + j);
Console.ReadKey();`
答案 0 :(得分:8)
Console.ReadKey
返回ConsoleKeyInfo
;你需要Console.ReadLine
。
您可能还想使用double.TryParse
来避免无效值的可能异常:
if(double.TryParse(Console.ReadLine(), out i))
{
double j = (0.17 * i);
System.Console.WriteLine("Your weight on the moon will be" + j);
}
else
{
Console.WriteLine("You entered an invalid value!");
}
答案 1 :(得分:1)
double.Parse(Console.ReadKey());
会返回ConsoleKeyInfo
个实例。您希望Console.ReadLine()
返回string
个实例。错误通常是说参数与任何方法定义都不匹配,如果用错误的参数调用它们,你会看到它适用于所有类型的方法。