Hoffentlich ist das keine Wiederholung, aber es gibt 5000+ Fragen hier mit "nicht alle Code-Pfade geben einen Wert zurück"!Warum generiert dieser asynchrone/erwartete Code "... nicht alle Codepfade geben einen Wert zurück"?
Ganz einfach, warum diese Methode mit einer nicht-generischen Implementierung kompiliert gerade fein:
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();
}
während dieses Versuch die Methode generisch zu machen einen Fehler Return state missing
/... not all code paths return a value
Warnung/erzeugt ?:
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 \ * "* sollte * Rückkehr' Task' und ... –