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 正常工作。
我正在使用最新版本的 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 正常工作。