如何解决Visual Studio Intellisense 无法识别 C#9 功能
我使用的是最新版本的 VS2019 (16.8.4),并且刚刚安装了 .Net 5.0.1 SDK,因为我想开始使用 C#9 功能。
然而,VS Intellisense 无法识别任何新内容,即使程序构建和运行良好。
有谁知道如何让 VS Intellisense 识别 C#9 特性?
举个例子,我创建了一个控制台应用程序项目(称为 ConsoleApp2),目标是 .Net 5.0,有一个只使用 init setter 的类。
课程很简单
const ExtractNumber = str => str.replace(/[^0-9.]/g,'')
console.log( ExtractNumber( 'Was $12.00' ));
console.log( ExtractNumber( '$12.00' ));
启动代码是
namespace ConsoleApp2
{
public class Class1
{
public string TestProp { get; init; }
}
}
这将在 VS 中编译和运行良好,但 Intellisense 无法识别仅 init 的 setter 是什么,并抱怨“无法将没有 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 正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。