CS0029 读取用户输入时

Emm*_* 03 -2 c# compiler-errors

我正在尝试编写一个计算器,但出现错误 CS0029。这是代码:

using System;

namespace Calculator
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Calculator\n");

            Rechnungplus();
        }

        static void Rechnungplus()
        {
            Console.WriteLine("after typing a/(every) number press enter.");
            double a = Console.ReadLine();
            double b = Console.ReadLine();
            double c = a + b;
            Console.WriteLine($"\n{a} + {b} = {c}");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我搜索了一个解决方案,我发现了一个有类似问题的人的问题。有人说他/她应该尝试:

double a = (Console.ReadLine());
Run Code Online (Sandbox Code Playgroud)

但这没有用。

Gur*_*ron 7

Console.ReadLine返回 a string,而不是 double ,因此您需要将其转换为 1。选项之一是:

double a = double.Parse(Console.ReadLine());
Run Code Online (Sandbox Code Playgroud)

但是,如果无法解析字符串,这将引发异常。Double.TryParse不过,将使用更安全的方法,如果转换成功,它将返回一个布尔标记。例如:

double a;
while(double.TryParse(Console.ReadLine(), out a))
{
    Console.WriteLine("Please enter a number:");
}
Run Code Online (Sandbox Code Playgroud)