'double.Parse(string)'的最佳重载方法匹配总是显示出来?

时间:2014-03-05 17:03:02

标签: c#

突然间,我在每个控制台应用程序中收到以下错误,包括我已保存的错误。

"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();`

2 个答案:

答案 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个实例。错误通常是说参数与任何方法定义都不匹配,如果用错误的参数调用它们,你会看到它适用于所有类型的方法。