【发布时间】:2022-01-14 08:45:15
【问题描述】:
我是 c# 新手,所以我需要一些指导。
string NumInput = Console.ReadLine();
在我的代码中,这条语句给出了警告
将 null 文字或可能的 null 值转换为不可为 null 的类型。
是否有任何替代此代码行或任何可以使此警告消失的方法
【问题讨论】:
-
将
string更改为string?或var。 -
或者在文件中添加
#nullable disable。 -
或使用:
string NumInput = Console.ReadLine() ?? string.Empty; -
为了参考和进一步研究,您收到此错误是因为您在项目中启用了可为空的引用类型:docs.microsoft.com/en-us/dotnet/csharp/nullable-references。
Console.ReadLine返回一个可以为空的字符串 (string?),您尝试将其分配给一个不可为空的字符串变量。 -
为了完整起见,如果标准输入已被重定向,
Console.ReadLine()可以返回null。例如,您的应用程序可以调用为myapp < input.txt;如果input.txt为空NumInput将最终为null,并且如果启用了可空引用,您将需要处理这种情况。当以交互方式使用时,它永远不会返回null,因为在用户输入一行之前应用程序不会继续。
标签: c# .net console-application