私のようなインターフェースを持っている場合:非同期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;
}
}
NOTE - このインタフェースを実装するクラスのいくつかは、実際の非同期でているので、私は完全にタスクのものを取り除くことはできません。
おかげ
は '(()=>真)Task.Runを返す;' –
@ LB:それは本当の理由がないため余分な仕事を作り出し、すでに完了している仕事を返すよりも予測が難しい。 –