我使用的是最新版本的VS2019 (16.8.4),并且刚刚安装了.Net 5.0.1SDK,因为我想开始使用C#9特性。
然而,VS Intellisense不能识别任何新的东西,即使程序构建和运行良好。
有人知道如何让VS智能识别C#9的特性吗?
作为示例,我创建了一个针对.Net 5.0的控制台应用程序项目(名为ConsoleApp2),其中包含一个仅使用初始化设置器的类。
这个类是简单的
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唯一的setter,并抱怨“没有setter的属性或无法访问的setter不能被赋值”。事实上,当您尝试初始化对象时,它甚至不会向您显示属性名称。
仅供参考,我已经在工具|预览功能中启用了“使用.Net核心SDK的预览”选项,并重新启动。
发布于 2021-01-13 07:33:28
事实证明,问题不在于本地Visual Studio Intellisense,而在于ReSharper。
我安装了ReSharper 2020.2.4,但你必须升级到2020.3才能与C#9.0兼容。
在我升级到ReSharper 2020.3.2之后,Visual Studio中的智能感知工作正常。
https://stackoverflow.com/questions/65693600
复制相似问题