【发布时间】:2019-06-19 05:44:07
【问题描述】:
安装 VS 2019 预览版 2 后,出现大量错误。错误演示代码:
public class Class1 {
public static async IAsyncEnumerable<int> Get()
{
for( int i = 0; i < 10; i++ ) {
await Task.Delay( 100 );
yield return i;
}
}
}
仅此而已(一个新的 dll 项目)!
预览 1 没问题。
项目:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
</Project>
错误信息是: 错误 CS0656 缺少编译器所需的成员 'System.Collections.Generic.IAsyncEnumerable`1.GetAsyncEnumerator'
对象浏览器显示 Collections.Generic 中的成员。
有什么想法吗?等待 Core 3.0 预览版 2?
类似IAsyncEnumerable not working in C# 8.0 preview 的东西?
VS 2019 P2 的另一个问题(另一个项目): 尽管 NullableReferenceTypes 行存在 Nullabilty 警告(在 vs 19 中,预览 1 还可以):
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>8.0</LangVersion>
**<NullableReferenceTypes>true</NullableReferenceTypes>**
警告:
警告 CS8632 可空引用类型的注释只能在“#nullable”上下文中的代码中使用。
项目设置不够?不再是全球性的了?
【问题讨论】:
-
是的,这暂时被破坏了,它将被修复。请参阅 Mads' blog 中的“自预览版 1 以来的更改”,其中提到了这两个问题。
-
现在,谁投票结束了这个问题?它当然是可复制的并得到官方认可
-
这绝对是“类似这种情况”,但这次你不能只添加缺少的类。
IAsyncEnumerable存在,但方法不同。你不能用扩展方法来伪造它,任何注入缺失方法的技术都是不值得的。您将不得不使用每日构建或等待 Core 3.0 Preview 2。OTOH,鉴于这些预览的波动性,不妨使用每日构建
标签: c# c#-8.0 nullable-reference-types iasyncenumerable