¿Cómo convertir una tarea <TDerived> a una tarea <TBase>?

Como la tarea de C # es una clase, obviamente no puedes lanzar unTask<TDerived> a unTask<TBase>.

Sin embargo, usted puede hacer:

public async Task<TBase> Run() {
    return await MethodThatReturnsDerivedTask();
}

¿Hay un método de tarea estática al que pueda llamar para obtener unTask<TDerived> ¿Qué instancia esencialmente solo apunta a la tarea subyacente y arroja el resultado? Me gustaría algo como:

public Task<TBase> Run() {
    return Task.FromDerived(MethodThatReturnsDerivedTask());
}

¿Existe tal método? ¿Existe alguna sobrecarga para usar un método asíncrono únicamente para este propósito?

Respuestas a la pregunta(3)

Su respuesta a la pregunta