Предположим, я определить метод, как это:Почему этот код компилируется?
public static void ListInts(int[] inVals)
{
for (int i = 0; i < inVals.Length; i++)
{
Console.WriteLine("{0}", inVals[i]);
}
}
Если я пытаюсь назвать это, как это, очевидно, я получаю сообщение об ошибке и код не будет компилироваться:
ListInts();
ListInts метод» 'имеет один параметр (ы), но вызывается с 0 аргументами
Но когда я изменяю определение метода следующим образом:
public static void ListInts(params int[] inVals)
{
for (int i = 0; i < inVals.Length; i++)
{
Console.WriteLine("{0}", inVals[i]);
}
}
Ошибка. Мне любопытно, почему это происходит? И почему второй код компилируется без каких-либо ошибок? Что происходит за кулисами, когда мы используем ключевое слово params
?
Первый Google ударил: http://msdn.microsoft.com/en-us/library/w5zay9db.aspx. –
Что вы ожидали? Какой эффект вы ожидали бы от ключевого слова 'params'? –
Знаете ли вы, что именно «params» делает? –