小编Tho*_*man的帖子

如何在接口中使用await方法

当使用await关键字并且具有返回Task <>的方法的接口实现针对接口(因为模拟,远程处理或类似)时:

interface IFoo
{
    Task<BigInteger> CalculateFaculty(int value);
}
Run Code Online (Sandbox Code Playgroud)

编译器出现错误:

'await'运算符只能在异步方法中使用.考虑使用'async'修饰符标记此方法并将其返回类型更改为'Task'

考虑到返回类型是"任务",这有点不寻常.这个问题有点令人沮丧,并迫使我使用延续风格 "退回" 或在此界面周围提供额外的代理(因此对于几乎所有对我来说都不可行的界面)

有没有人对如何解决这个问题有个好主意?

c# async-await .net-4.5

29
推荐指数
2
解决办法
1万
查看次数

Roslyn ObjectPool结构包装器

我正在查看Roslyn ObjectPool实现(https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/SharedCollections/ObjectPool%601.cs),我不明白他们为什么不简单选择有一个T数组,而是将T包装在一个结构中?

[DebuggerDisplay("{Value,nq}")] 
private struct Element 
{ 
    internal T Value; 
} 
...
private readonly Element[] _items;
Run Code Online (Sandbox Code Playgroud)

这样做的目的是什么?

c# arrays generics struct roslyn

7
推荐指数
1
解决办法
202
查看次数

标签 统计

c# ×2

.net-4.5 ×1

arrays ×1

async-await ×1

generics ×1

roslyn ×1

struct ×1