C#8.0是否支持IAsyncEnumerable?

时间:2019-04-24 02:58:21

标签: c# .net-standard-2.0

真的很难找到关于os.remove(img_path)的任何信息,除了“ What's New c#8.0”文章中的一些提及。尝试在启用了netstandard 2.0和C#8的Visual Studio 2019中使用它,它的确可以识别该类,但是在构建时却出现了很多错误:

enter image description here

4 个答案:

答案 0 :(得分:6)

C#8 支持这些功能。但是,这不适用于.Net标准2.0

IAsyncEnumerable Interface

  

适用于

     

.NET Core 3.0预览版3

     

.NET Standard 2.1预览

您将必须获得其中一个预览。

您可以在此处找到有关.Net Core 3 Preview的更多信息

答案 1 :(得分:1)

对于.NET Standard 2.0,您应该安装Microsoft.Bcl.AsyncInterfaces

https://www.nuget.org/packages/Microsoft.Bcl.AsyncInterfaces/

答案 2 :(得分:1)

弗拉德的答案是正确的。

  1. 将LangVersion 8.0添加到所需的Projects PropertGroup
  2. 将Microsoft.Bcl.AsyncInterfaces添加为PackageReference

例如:MyDummyLib.csproj

<PropertyGroup>
    <TargetFrameworks>netstandard2.0;netstandard2.1</TargetFrameworks>
    <LangVersion>8.0</LangVersion>
    <AssemblyName>MyDummyLib</AssemblyName>
    <RootNamespace>MyDummyLib</RootNamespace>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)'=='netstandard2.0'">
    <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="1.1.1" />
</ItemGroup>

答案 3 :(得分:0)

您似乎需要定位.NET Standard 2.1,但它仍仅处于预览状态。

https://docs.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1?view=netstandard-2.1