如果我有這樣的一個接口:異步programmic和虛擬功能
using System.Threading.Tasks;
...
public interface IFoo
{
Task doIt();
Task<bool> doItAndReturnStuff();
}
,並實現了這個接口恰好不需要異步方法的類之一,我怎麼能糾正覆蓋這些功能呢?
換句話說,我該如何正確地返回Task對象中包裝的「void」和「bool」?
例如:
public class FooHappensToNotNeedAsync : IFoo
{
public override Task doIt()
{
// If I don't return anything here, I get
// error that not all code paths return a value.
// Can I just return null?
}
public override Task<bool> doItAndReturnStuff()
{
// If I want to return true, how to I do it?
// This doesn't work:
return true;
}
}
注意 - 我不能完全剝離任務的東西,因爲一些實現這個接口類的,其實都是非同步。
感謝
'返回Task.Run(()=> TRUE);' –
@ LB:這會產生額外的工作,沒有真正的理由,並且比返回已經完成的任務更難預測。 –