希望这不是重复,但这里有 5000 多个问题,“并非所有代码路径都返回值”!
很简单,为什么这个带有非泛型实现的方法编译得很好:
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();
}
虽然这种使方法通用的尝试会产生Return state missing
/ ...not all code paths return a value
警告/错误?:
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();
}