c# - 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());
但这没有用。
解决方案
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:");
}
推荐阅读
- flutter - Flutter 运行使用不正确的 apk 路径
- asset-pipeline - Rails 6 的资产管道中不存在资产“application.js”
- python - 如何在 Pandas 中实现这种类型的搜索?
- javascript - 遍历数组中的嵌套对象并删除属性名称和值
- groovy - 将元素附加到列表中会在 Groovy 中创建列表列表
- c++ - C 的替代方案,例如 C++ 的标签和转义嵌套循环
- node.js - 语义 UI 表单输入未向路由发送数据
- asp.net - 如何将 Mono X 添加到现有的 ASP.NET 网站
- r - 指数平滑没有将我的数据识别为时间序列
- r - 根据来自多行和多列的多个条件比较时间戳