相关疑难解决方法(0)

在 VS2019 中测试 C# 9.0 - CS0518 IsExternalInit 未定义或导入......我如何定义/导入它?

编辑 [2020 年 11 月 29 日]:.NET 5.0 现已发布,但如果您的目标是 .NET Standard 2.1,则仍然需要以下解决方案


C# 9.0 仍在开发中。有几个参考资料让我相信它现在应该是可测试的(无论如何,其中一些)。

  1. 由 Awesome 先生本人撰写的 Microsoft 博客,介绍了这些功能。https://devblogs.microsoft.com/dotnet/welcome-to-c-9-0/
  2. github上的语言跟踪页面:https : //github.com/dotnet/roslyn/blob/master/docs/Language%20Feature%20Status.md

我正在使用 VS 2019 16.7 预览版 3.1。我选择了语言版本作为项目的预览

一些 C# 9 功能,我可以使用。喜欢:Dictionary<string, object> Stuff = new()

但是使用新init功能会给我这个错误:Error CS0518 Predefined type 'System.Runtime.CompilerServices.IsExternalInit' is not defined or imported

我该如何解决?

导致错误的代码示例:

class Test
{
   public int Hello { get; init; }
}
Run Code Online (Sandbox Code Playgroud)

record Test(int hello);
Run Code Online (Sandbox Code Playgroud)

记录定义是速记并扩展为使用 的内容init,这就是它也受到影响的原因。

我上面链接的语言跟踪页面说该功能是Merged into …

c# c#-9.0

50
推荐指数
3
解决办法
7813
查看次数

标签 统计

c# ×1

c#-9.0 ×1