C#. Методы с переменным количеством параметров

Ключевое слово params

Эта статья носит скорее академический характер. В ней рассматривается использование ключевого слова params в списке аргументов методов. Для чего же нужно это ключевое слово? Да для тех случаев, когда мы ходим создать метод с переменным количеством однотипных параметров. Например, в одном случае нам нужно вызвать один метод с двумя аргументами, а в другой раз с тремя, в следующий раз с десятью. В C# эта задача решается очень просто! Создадим такой метод, который будет принимать гибкий список целочисленных параметров, а потом просто складывать из все, а результат возвращать вызывающему коду:

//Принимает гибкий список параметров, суммирует их и возвращает результат
static int Sum(params int[] aValues)
{
    //Для хранения результата
    int result = 0;

    //Перебор всех элементов от первого до последнего
    foreach (int tmpValue in aValues)
    {
        //Добавить текущее значение к результату
        result += tmpValue;
    }

    //Вернуть результат
    return result;
}

Как видите, список аргументов воспринимается внутри метода как массив, и работать с ним можно как с обычным массивом, но все «прелести» такого подхода становятся видны во использования (вызова) метода:

//Использовать метод можно так
int firstResult = Sum(2, 5, 6);
 
//Или так
int secondResult = Sum(2, 5, 6, 4, 2, 8);

//Или даже так
int otherResult = Sum();

А теперь на чистоту! Во время написания этой статьи, я ловил себя на мысли, что ни разу в реальной практике не создавал методы с использованием ключевого слова params, просто не было такой необходимости… Но Вам эта информация может пригодиться, хотя бы для того, чтобы понять что происходит, если вдруг встретите использование такого подхода в чужом коде!

Добавить комментарий