首页 > 解决方案 > CS0029 读取用户输入时

问题描述

我正在尝试编写一个计算器,但出现错误 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}");
        }
    }
}

我搜索了一个解决方案,并从有类似问题的人那里找到了一个问题。有人说他/她应该尝试:

double a = (Console.ReadLine());

但这没有用。

标签: c#compiler-errors

解决方案


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

double a = double.Parse(Console.ReadLine());

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

double a;
while(!double.TryParse(Console.ReadLine(), out a))
{
    Console.WriteLine("Please enter a number:");
}

推荐阅读