在Windows 7 x64上的VS2012中使用Code Contracts 1.4.51019.0时,我从ccrewrite收到以下编译错误: “方法或操作未实现。“的 的
它似乎是由属性访问器和使用缺少内部async
的{{1}}方法组合引起的。
复制步骤:
创建一个新的类库,启用“完整”运行时合同检查:
await
还有其他人经历过这个吗?
答案 0 :(得分:2)
不async
的{{1}}方法通常表示编程错误。有一个编译器警告会告诉您这种情况。
如果您希望使用异步签名同步实现方法,通常的方法是实现非await
方法并返回async
,例如Task
。请注意,使用此方法,异步会同步引发,而不是放在返回的Task.FromResult<object>(null)
上。
答案 1 :(得分:2)
这似乎在代码合同1.5版中得到修复。
答案 2 :(得分:1)
在过去几个月中,我们修复了重写异步方法的许多问题。我建议你在最新的安装程序上再次尝试你的代码,如果你还有问题,请提供一个完整的复制品。
答案 3 :(得分:0)
我相信async关键字就代表了这一点 - 要么在代码期间等待,要么在生成任务并在调用方法时处理,或者需要显式返回任务。