〰️

【C#, interface】非同期メソッドの実装を強制する方法

2023/01/29に公開

派生クラスに非同期関数の実装を強制させたい場面は割りとあるが、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