次のようなインターフェースがある場合:
using System.Threading.Tasks;
...
public interface IFoo
{
Task doIt();
Task<bool> doItAndReturnStuff();
}
このインターフェイスを実装するクラスの 1 つはたまたま非同期メソッドを必要としません。これらの関数をオーバーライドするにはどうすればよいですか?
つまり、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 を完全に削除することはできません。
ありがとう