无法解释错误消息' async对此项目无效'

时间:2017-05-04 09:34:40

标签: c# asynchronous interface task

我正在关注PluralSight的一个关于如何在.NET核心中开发一个fullstack项目的课程,并且有过无数的错误,这些错误让我和一些甜蜜的Google-fu帮助我理解(主要是由于VS版本的差异)。

然而,我刚刚遇到了一些......复杂的事情?我正在使用此方法的接口public interface IWorldRepository { async Task<bool> SaveChangesAsync(); // <-- error occurs here } 中工作:

WorldRepository

使用此方法将类(public async Task<bool> SaveChangesAsync() { return (await _context.SaveChangesAsync()) > 0; } )与其接口:

{{1}}

根据我对.NET的经验,这应该可以正常工作,但由于某种原因,界面抱怨它,说:&#34;修饰符&#39; async&#39;对此商品无效。&#34;

我四处寻找错误并亲自找到了解释 的 Jon Skeet 即可。但是,我并不真正理解可能发生的事情以及为什么我的代码是错误的。

它不仅看起来很好,而且它似乎适用于在PluralSight上运行相同代码的教师。

如果有人能够对此有所了解,我将非常感激!

2 个答案:

答案 0 :(得分:2)

您不能在接口定义中使用async关键字。但是,它已正确放置在继承类定义中。

这是因为接口定义了结构(什么),而类定义了实现(如何)。将方法标记为async允许在方法正文中使用await关键字,但不会形成方法签名的一部分。

从您的界面中删除async关键字将允许您的代码进行编译。

public interface IWorldRepository
{
    Task<bool> SaveChangesAsync();
}

答案 1 :(得分:0)

我遇到了同样的问题,但是我回去观看了视频,注意到红色的波浪线从未离开教练的界面声明。我认为他只是没有回去修改视频。