我有一个方法:
private async Task CopyFormInfoToSourceObject(SchedulerAppointmentOperationEventArgs arg)
{
// lots of code
}
我想这样称呼它:
private async Task AppointmentInserting(SchedulerAppointmentOperationEventArgs arg)
{
return CopyFormInfoToSourceObject(arg);
}
但这不会编译。它说返回类型不匹配并且不需要异步。
我不明白为什么这不能编译。返回类型适用async Task
于两者。
async
不是方法签名的一部分,它是允许在方法内部使用的修饰符,因此返回类型在两种情况下都是如此。await
Task
async
由编译器扩展为异步状态机(Async/Await 在 C# 中的实际工作原理),它将返回类型(如果有)转换T
为Task<T>
. 即(经过一些简化)如果您return new object();
在方法中有语句,async
它将被转换为Task<object>
(如果方法返回Task<object>
)。Task
从方法返回async
相当于void
从非异步方法返回。async
从第二个中删除:或删除
return
并添加await
:也可以看看: