Я работал над Java и новичок в технологии .Net
Можно ли объявить функцию в С#, которая принимает переменные входные параметры
Есть ли какой-либо синтаксис С#, похожий на следующий синтаксис Java?
void f1(String... a)
Я работал над Java и новичок в технологии .Net
Можно ли объявить функцию в С#, которая принимает переменные входные параметры
Есть ли какой-либо синтаксис С#, похожий на следующий синтаксис Java?
void f1(String... a)
Да, С# имеет эквивалент параметров varargs. Они называются массивами параметров и представлены с помощью модификатора params
:
public void Foo(int x, params string[] values)
Затем назовите его с помощью
Foo(10, "hello", "there");
Как и в случае с Java, это может быть только последний параметр. Обратите внимание, что (как и в случае с Java) параметр params object[] objects
может легко вызвать путаницу, так как вам нужно помнить, должен ли один аргумент типа object[]
снова завернуться или нет. Аналогично для любого типа с нулевым значением вам нужно помнить, будет ли один аргумент null
рассматриваться как ссылка на массив или один элемент массива. (Я думаю, что компилятор только создает массив, если это необходимо, но я склонен писать код, который позволяет мне забыть об этом.)
Посмотрите params (ссылка на С#)
Ключевое слово params позволяет указать параметр метода, который принимает переменное количество аргументов.
Вы можете отправить список аргументов с указанным типом указанного типа в объявлении параметра или в массиве аргументов указанного типа. Вы также можете отправлять аргументы.
Никакие дополнительные параметры не разрешены после ключевого слова params в объявление метода, и только одно ключевое слово params разрешено в Объявление метода.
Как показано в примере, метод объявляется как
public static void UseParams(params int[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + " ");
}
Console.WriteLine();
}
и используется как
UseParams(1, 2, 3, 4);