Visual Studio Intellisense 无法识别 C#9 功能

Visual Studio Intellisense doesn't recognise C#9 features

我正在使用最新版本的 VS2019 (16.8.4),并且刚刚安装了 .Net 5.0.1 SDK,因为我想开始使用 C#9 功能。

但是 VS Intellisense 无法识别任何新内容,即使程序已构建并且运行没问题。

有谁知道如何让 VS Intellisense 识别 C#9 功能?

例如,我创建了一个针对 .Net 5.0 的控制台应用程序项目(称为 ConsoleApp2),其中 class 仅使用 init setter。

class就是

namespace ConsoleApp2
{
    public class Class1
    {
        public string TestProp { get; init; }
    }
}

启动代码为

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            var testClass = new Class1 {TestProp = "test value"};
            Console.WriteLine(testClass.TestProp);
        }
    }
}

这将从 VS 编译并且 运行 正常,但 Intellisense 无法识别什么是 init only setter,并抱怨“A 属性 without setter 或不可访问的 setter 无法分配给”。事实上,当您尝试初始化对象时,它甚至不会向您显示 属性 名称。

FWIW,我在工具 | 中启用了“使用 .Net Core SDK 的预览”选项。预览功能,并重新启动。

事实证明,问题不在于原生 Visual Studio Intellisense,而在于 ReSharper。

我安装了 ReSharper 2020.2.4,但您必须转到 2020.3 才能与 C#9.0 兼容。

我升级到 ReSharper 2020.3.2 后,Visual Studio 中的 Intellisense 正常工作。