Переменное число аргументов
Иногда разработчику удобно определить метод, способный принимать переменное число параметров. Например, тип System.String предлагает методы, выполняющие объединение произвольного числа строк, а также методы, при вызове которых можно задать набор единообразно форматируемых строк.
static Int32 Add(params Int32[] values) {
// ПРИМЕЧАНИЕ: при необходимости этот массив
// можно передать другим методам
Int32 sum = 0; if (values != null) {
for (Int32 x = 0; x < values.Length; x++)
sum += values[x];
} return sum;
}
Для этого используется ключевое слово params. Пару слов по поводу его использования:
- Если оно присутствует среди аргументов метода, то должно быть в конце
- Если есть возможность обойтись без ключевого слово params, то лучше так и сделать, т.к тратятся значительные ресурсы на выделение памяти для массивов, и проще будет реализовать лишние 1-3 метода с тем же функционалом, но разным кол-во аргументов (2, 3, 4)