Передайте несколько дополнительных параметров функции C#

Существует ли способ настроить функцию C# для принятия какого-либо количества параметров? Например, могли Вы настраивать функцию, таким образом что следующий вся работа -

x = AddUp(2, 3)

x = AddUp(5, 7, 8, 2)

x = AddUp(43, 545, 23, 656, 23, 64, 234, 44)
61
задан Svetlozar Angelov 4 January 2010 в 09:06
поделиться

2 ответа

Используйте массив параметров с модификатором params:

public static int AddUp(params int[] values)
{
    int sum = 0;
    foreach (int value in values)
    {
        sum += value;
    }
    return sum;
}

Если вы хотите убедиться, что есть хотя бы одно значение (а не пустой массив), то укажите это отдельно:

public static int AddUp(int firstValue, params int[] values)

(Установите sum на firstValue, чтобы начать с этой реализации. )

Обратите внимание, что также следует обычным способом проверять ссылку на массив на ничтожность. Внутри метода параметр представляет собой совершенно обычный массив. Модификатор массива параметра имеет значение только тогда, когда вы вызываете метод. В принципе компилятор превращает:

int x = AddUp(4, 5, 6);

в нечто вроде:

int[] tmp = new int[] { 4, 5, 6 };
int x = AddUp(tmp);

Вы можете вызывать его с совершенно обычным массивом - так что последний синтаксис действителен и в исходных кодах.

.
142
ответ дан 24 November 2019 в 17:08
поделиться

C# 4.0 также поддерживает дополнительные параметры, которые могут быть полезны в некоторых других ситуациях. Смотрите эту статью.

5
ответ дан 24 November 2019 в 17:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: