2 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
public abstract class BaseHandler
{
protected virtual Task<string> GetEntityName(object entity)
{
return Task.FromResult(string.Empty);
}
}
因?yàn)槟愕姆椒](méi)有做任何可以等待的事情,你可以通過(guò)使用Task.FromResult方法返回已經(jīng)完成的任務(wù)。
你不需要 await 里面的任何東西GetEntityName,因?yàn)闆](méi)有任何不完整的 Task 需要等待。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
async
是它出現(xiàn)的特定方法的實(shí)現(xiàn)細(xì)節(jié)。盡管它出現(xiàn)在哪里,它并不構(gòu)成方法簽名的一部分。async
(這也是接口1中不允許您使用的原因——因?yàn)樗鼈儧](méi)有實(shí)現(xiàn),而且它不是方法簽名的一部分)。
也就是說(shuō),任何虛擬Task
返回方法都可能override
在子類中具有/不使用的實(shí)現(xiàn),async
并且原始基方法的標(biāo)記方式也無(wú)關(guān)緊要。
正如 FCin 所示,完全有可能有一個(gè)同步方法仍然返回Task
您想要的作為該方法的返回類型。
1忽略接口的新奇默認(rèn)實(shí)現(xiàn)。
- 2 回答
- 0 關(guān)注
- 108 瀏覽
添加回答
舉報(bào)