Простой. Если я использую:Использование пар ключ-значение в качестве параметров
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"));
Ewww ... Я уже не нравится это ...
Итак, прямо сейчас я использую функцию Add без модификатора params и просто передаю предварительно заданный массив этой функции. Поскольку он просто используется для быстрой инициализации теста, я не слишком беспокоюсь о необходимости использования этого дополнительного кода, хотя я хочу, чтобы код был прост для чтения. Я хотел бы знать трюк, чтобы использовать метод, который я не могу использовать, но есть ли способ сделать это без использования «новой конструкции KeyValue()»?
Вы знаете, что уже существует «KeyValuePair»? –
Да, я знаю. :-) Это тип, который я использую ... –