如何防止“将 null 文字或可能的 null 值转换为不可为 null 的类型”。错误?

问题描述 投票:0回答:1

每次我继续尝试在 VS Code 中执行 Console.ReadLine 时,都会出现以下错误: “将 null 文字或可能的 null 值转换为不可为 null 的类型。” 对于上下文,这是我的代码:

    class Program
    {
      static void Main() 
      {
        Console.WriteLine("Calc v0.1");

        Console.WriteLine("Enter:");

        string num1 = Console.ReadLine();
        string num2 = Console.ReadLine();

        //I realize that it won't actually add the numbers; I'm just trying to at least get some type of    output from the program.
        Console.WriteLine(num1 + num2);
    
      }
    }

我原以为程序会要求用户输入,但它一直给我错误: “将 null 文字或可能的 null 值转换为不可为 null 的类型。”

c# user-input
1个回答
0
投票

这可能是重复的,但您需要告诉 C# ReadLine 可以返回

null
(如果没有任何输入,它将执行此操作)。最简单的方法是使用 null-forgiving 运算符
!
(https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving)。

编译时没有错误或警告:

class Program
{
    static void Main()
    {
        Console.WriteLine("Calc v0.1");

        Console.WriteLine("Enter:");

        string num1 = Console.ReadLine()!;
        string num2 = Console.ReadLine()!;

        Console.WriteLine(num1 + num2);

    }
}

另请参阅:https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/nullable-warnings?f1url=%3FappId%3Droslyn%26k%3Dk(CS8600)#possible -空值分配给不可空引用

© www.soinside.com 2019 - 2024. All rights reserved.