Simple. Если я использую:
public void Add(params int[] values)
Тогда я могу использовать это как:
Add(1, 2, 3, 4);
Но теперь я имею дело с парами ключ-значение! У меня есть класс KeyValue, чтобы связать целое число со строковым значением. Итак, я начинаю с:
public void Add(params KeyValue[] values)
Но я не могу использовать это:
Add(1, "A", 2, "B", 3, "C", 4, "D");
Вместо этого я вынужден использовать:
Add(new KeyValue(1, "A"), new KeyValue(2, "B"), new KeyValue(3, "C"), new KeyValue(4, "D"));
Фууу ... Мне это уже не нравится ...
Итак, сейчас я использую функцию Add без модификатора params и просто передаю предопределенный массив этой функции. Поскольку он просто используется для быстрой инициализации теста, мне не нужно беспокоиться о необходимости дополнительного кода, хотя я хочу сделать код простым для чтения. Я хотел бы знать хитрость, чтобы использовать метод, который я не могу использовать, но есть ли способ сделать это без использования конструкции "new KeyValue ()"?