【发布时间】:2019-01-18 07:25:25
【问题描述】:
我该怎么做?
public abstract class A {
protected abstract async Task foo(int a);
protected async Task bar(int a) {
await foo(a);
}
}
public class B : A {
public async Task foo(int a) {
return a + 1;
}
}
基本上我想在抽象类中声明一个没有主体的异步函数,也让抽象类中的另一个函数像它存在一样使用该函数。但是在实现抽象类的类中使用主体定义该函数。
注意:我的代码中的foo 有一些使用等待的东西,所以它必须是异步的。
这可能吗?
【问题讨论】:
-
我看不出这个问题是如何回答我的问题的?
-
@servy 这个和您链接到的问题都在同一个域中,它们不是彼此重复的。您链接的问题主要是关于您在异步函数中不使用 await 时收到的编译器警告。这更多是关于首先定义它。该问题的公认答案不会帮助该用户。
-
异步与方法声明的其他部分不同。你不能强迫某些东西是异步的。您所能做的就是将返回类型指定为
Task -
Sam I am 下面的回答是正确的。只需去掉抽象声明中的 async 即可。
标签: c#