Esperemos que esto no sea una repetición, pero hay más de 5000 preguntas aquí con "¡no todas las rutas de códigos devuelven un valor"!¿Por qué este código async/await genera "... no todas las rutas de código devuelven un valor"?
En pocas palabras, ¿por qué este método con una aplicación no genérico compilar bien:
public static async Task TimeoutAfter(this Task task, int millisecondsTimeout)
{
if (task == await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
await task;
else
throw new TimeoutException();
}
mientras que este intento de hacer que el método genérico genera una Return state missing
/... not all code paths return a value
de advertencia/error ?:
public static async Task<T> TimeoutAfter<T>(this Task<T> task, int millisecondsTimeout)
{
if (task == await Task.WhenAny(task, Task.Delay(millisecondsTimeout)))
await task;
else
throw new TimeoutException();
}
@LB \ * "* * debe retorno' Task' y ... –