C#nullable无法正确检测问题?

C#nullable无法正确检测问题?,c#,nullable,C#,Nullable,我正在迁移一个项目以支持C#8.0 nullable,但我遇到了一个情况,Visual Studio似乎没有正确地检测到null值。如果您在TestClass构造函数中查看下面的代码,Console.WriteLine方法将抛出NullReferenceException,因为this.Value为null且尚未赋值。虽然VS没有警告或错误,但它认为这里一切正常。我是否遗漏了什么,VS不应该对此提出警告吗?这里的值绝对为空。谢谢 #nullable enable namespace TestN

我正在迁移一个项目以支持C#8.0 nullable,但我遇到了一个情况,Visual Studio似乎没有正确地检测到null值。如果您在TestClass构造函数中查看下面的代码,Console.WriteLine方法将抛出NullReferenceException,因为this.Value为null且尚未赋值。虽然VS没有警告或错误,但它认为这里一切正常。我是否遗漏了什么,VS不应该对此提出警告吗?这里的值绝对为空。谢谢

#nullable enable

namespace TestNullable
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            TestClass test = new TestClass("MyString");
        }

        public class TestClass
        {
            private readonly string Value;

            public TestClass(string value)
            {
                System.Console.WriteLine(this.Value.Length.ToString());
                this.Value = value;
            }
        }
    }
}

“这很好,但不是很好”它看起来像是一个可空分析器的潜在错误。。。基本上,因为
Value
是不可为空的,所以它不会在那一行检查它是否为空/未初始化,而是只检查
Value
是否在任何地方初始化。我在Microsoft打开了一个案例,希望他们能很快解决这个问题。谢谢大家!