希望這不是重複,但有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();
}
@LB \ *「*應*回報'Task'和... –