为字符串输入转换 Console.ReadLine() 的空文字

Converting null literal for Console.ReadLine() for string input

我是 c# 的新手,所以我需要一些指导。

string NumInput = Console.ReadLine();

在我的代码中,这条语句给出了

的警告

正在将 null 文字或可能的 null 值转换为不可为 null 的类型。

是否有任何替代此代码行或任何可以使此警告消失的方法

首先,您看到此消息是因为您在项目中启用了 C# 8 Nullable reference type 功能。 Console.ReadLine() returns 可以是 stringnull 的值,但您使用它来设置变量输入 字符串 。相反,要么使用 var 关键字,它将隐式地将变量设置为与 return 值相同的类型,要么手动将变量设置为类型 nullable string string?. ? 表示可为空的引用类型。

然后您可能想在使用之前检查您的变量是否确实包含一个字符串:

string? NumInput = Console.ReadLine();
if (NumInput == null)
{
    // ...
}