〰️
【C#, interface】非同期メソッドの実装を強制する方法
派生クラスに非同期関数の実装を強制させたい場面は割りとあるが、interface
側でasync
とか書くとエラーになる。
どないすんねんと思ってたら戻り値をTask
でラップすれば良いらしい。
ホンマか?
Interface定義の例
public interface I {
Task<string> Nanika(Func<int, Task<string>> Suruyo);
}
派生クラスの自動実装コード
public class A : I {
public Task<string> Nanika(Func<int, Task<string>> Suruyo) {
throw new NotImplementedException();
}
}
Discussion