Подтвердить что ты не робот

Создание методов с бесконечными параметрами?

В С# вы можете сделать это:

foo = string.Format("{0} {1} {2} {3} ...", "aa", "bb", "cc" ...);

Этот метод Format() принимает бесконечные параметры, являясь первым, как строка должна быть отформатирована, а остальные - значениями, которые должны быть помещены в строку.

Сегодня я пришел к ситуации, когда мне пришлось получить набор строк и протестировать их, затем я вспомнил эту языковую функциональность, но я понятия не имел. После нескольких неудачных поисков в Интернете я понял, что было бы разумнее просто получить массив, который не сделал меня вполне удовлетворенным.

Q: Как создать функцию, которая принимает бесконечные параметры? И как его использовать?

4b9b3361

Ответ 1

С 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[], называемого numbers.

Ответ 2

Используйте ключевое слово params. Использование:

public void DoSomething(int someValue, params string[] values)
{
    foreach (string value in values)
        Console.WriteLine(value);
}

Параметр, который использует ключевое слово params, всегда заканчивается.

Ответ 3

Несколько заметок.

Парамы должны быть помечены по типу массива, например string [] или object [].

Параметр, обозначенный w/params, должен быть последним аргументом вашего метода. Например, Foo (string input1, object []).

Ответ 4

используйте params. Например

static void Main(params string[] args)
{
    foreach (string arg in args)
    {
        Console.WriteLine(arg);
    }
}

Ответ 5

Вы можете достичь этого, используя ключевое слово params.

Маленький пример:

public void AddItems(params string[] items)
{
     foreach (string item in items)
     { 
         // Do Your Magic
     }
}

Ответ 6

    public static void TestStrings(params string[] stringsList)
    {
        foreach (string s in stringsList){ } 
            // your logic here
    }

Ответ 7

 public string Format(params string[] value)
 {
            // implementation
 }

Используется ключевое слово params

Ответ 8

function void MyFunction(string format, params object[] parameters) {

}

Instad объекта [] вы можете использовать любой тип, который вам нравится. Аргумент params всегда должен быть последним в строке.