我正在關注如何在.NET核心中開發完整堆棧項目的PluralSight課程,並且遇到了無數的錯誤,因此和一些甜蜜的Google-fu有幫助我理解(主要是由於VS版本的差異)。無法解釋錯誤消息'異步對此項無效'
但是我剛剛遇到了一些更復雜的事情?
public interface IWorldRepository
{
async Task<bool> SaveChangesAsync(); // <-- error occurs here
}
其中在其接口的類(WorldRepository
)用這種方法:
public async Task<bool> SaveChangesAsync()
{
return (await _context.SaveChangesAsync()) > 0;
}
我與.NET的經驗,這應該可以正常工作,我具有此方法的接口IWorldRepository
工作,但出於某種原因,界面正在抱怨它,並說:「修飾符」async「對此項無效。」
我看了看周圍的錯誤,並發現我們親愛的 Jon Skeet的解釋。然而,我並不真正瞭解可能發生了什麼以及爲什麼我的代碼是錯誤的。
不僅它看起來不錯,但它似乎在PluralSight上運行相同的代碼的指導員工作正常。
如果有人能夠闡明這一點,我將不勝感激!
您不能將接口成員定義爲'async'。刪除關鍵字,這將編譯。 –
「對於運行相同代碼的教師工作正常」 - 這不可能。包含'異步任務 SaveChangesAsync();'的界面不會編譯 –
Alex
這就是我的想法。那麼編譯器是否理解(在運行時)該方法在默認情況下是異步的(因爲使用Task)?編寫這樣的代碼是否有任何意義(性能和味道)? – geostocker