.NET 4.5中的代码约定+异步:“方法或操作未实现”

时间:2012-10-26 14:38:46

标签: c# .net-4.5 code-contracts async-await c#-5.0

在Windows 7 x64上的VS2012中使用Code Contracts 1.4.51019.0时,我从ccrewrite收到以下编译错误: “方法或操作未实现。“的

它似乎是由属性访问器和使用缺少内部async的{​​{1}}方法组合引起的。

复制步骤:

创建一个新的类库,启用“完整”运行时合同检查:

await

还有其他人经历过这个吗?

4 个答案:

答案 0 :(得分:2)

async的{​​{1}}方法通常表示编程错误。有一个编译器警告会告诉您这种情况。

如果您希望使用异步签名同步实现方法,通常的方法是实现非await方法并返回async,例如Task 。请注意,使用此方法,异步会同步引发,而不是放在返回的Task.FromResult<object>(null)上。

答案 1 :(得分:2)

这似乎在代码合同1.5版中得到修复。

答案 2 :(得分:1)

在过去几个月中,我们修复了重写异步方法的许多问题。我建议你在最新的安装程序上再次尝试你的代码,如果你还有问题,请提供一个完整的复制品。

答案 3 :(得分:0)

我相信async关键字就代表了这一点 - 要么在代码期间等待,要么在生成任务并在调用方法时处理,或者需要显式返回任务。