2013-01-10 5 views
3

Использование System.Threading.Tasks.Task.WaitAll() я мог видеть доступные параметры, я должен использовать этот методTask.WaitAll() - нет параметров

можно увидеть here но при написании в визуальной студии, я был в состоянии вызвать метод с не параметры на всех:

Task.WaitAll(); 

и не обнаруживался как ошибка синтаксиса в IDE (пропавших без параметров), можете ли вы объяснить, почему это возможно с этим конкретным способом?

+0

Это, в основном, не-op. –

ответ

12

Полное определение этого метода является

public static void WaitAll(params Task[] tasks) 

Слово params указывает, что метод принимает переменное число аргументов. 0 также явно разрешены.

Излишне говорить, что метод не имеет эффекта при вызове этого способа.

+0

Было бы неплохо, если бы в IDE было предупреждение. –

+7

@ 0A0D Почему? Для многих реализаций 'params' никакие аргументы не являются разумной вещью для использования, например' Console.WriteLine() '. В этом конкретном случае это просто не имеет смысла (а также не проблематично). – Servy

+0

Приветствия! что вы сделаете, спасибо за ваш ответ – SwiftHands

3

Метод перегружен. One overload имеет вид:

public static void WaitAll(
    params Task[] tasks 
) 

Параметр params может принимать ноль или более параметров.

Смежные вопросы