В C# можно сделать это:
foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);
Этот метод Format()
принимает бесконечные параметры, будучи первым, как строка должна быть отформатирована, и остальные - значения, которые будут помещены в строку.
Сегодня я пришел к ситуации, где я должен был получить ряд строк и протестировать их, затем я помнил эту функциональность языка, но у меня не было подсказки. После нескольких неудачных веб-поисков я понял, что было бы более благоразумно просто получить массив, который не сделал меня вполне удовлетворенным.
Q: Как я делаю функцию, которая принимает бесконечные параметры? И как я использую его?
С ключевым словом params
.
Вот пример:
public int SumThemAll(params int[] numbers)
{
return numbers.Sum();
}
public void SumThemAllAndPrintInString(string s, params int[] numbers)
{
Console.WriteLine(string.Format(s, SumThemAll(numbers)));
}
public void MyFunction()
{
int result = SumThemAll(2, 3, 4, 42);
SumThemAllAndPrintInString("The result is: {0}", 1, 2, 3);
}
Код показывает разные вещи. Прежде всего, аргумент с ключевым словом params
всегда должен быть последним (и может быть только один для каждой функции). Кроме того, вы можете вызвать функцию, которая принимает аргумент params
, двумя способами. Первый способ проиллюстрирован в первой строке MyFunction
, где каждое число добавляется как единственный аргумент. Однако его также можно вызвать с помощью массива, как показано в SumThemAllAndPrintInString
, который вызывает SumThemAll
с int []
, вызываемыми числами
.
используйте ключевое слово params
. Например
static void Main(params string[] args)
{
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
Несколько заметок.
Параметры должны быть отмечены для типа массива, например, string [] или object [].
Параметр, помеченный как w / params, должен быть последним аргументом вашего метода. Например, Foo (строка input1, object [] items).
public static void TestStrings(params string[] stringsList)
{
foreach (string s in stringsList){ }
// your logic here
}
public string Format(params string[] value)
{
// implementation
}
Используется ключевое слово params
function void MyFunction(string format, params object[] parameters) {
}
Вместо object[] вы можете использовать любой тип, который вам нравится. Аргумент params всегда должен быть последним в строке.
Этого можно добиться с помощью ключевого слова params .
Маленький пример:
public void AddItems(params string[] items)
{
foreach (string item in items)
{
// Do Your Magic
}
}
Используйте ключевое слово params. Использование:
public void DoSomething(int someValue, params string[] values)
{
foreach (string value in values)
Console.WriteLine(value);
}
Параметр, использующий ключевое слово params, всегда стоит в конце.