Почему я не могу передать в функцию различное количество ссылок?

Я хочу сделать что-то вроде этого:

double a, b, c, d, e;
ParseAndWrite("{1, 2, 3}", ref a, ref b, ref c);
ParseAndWrite("{4, 5}", ref d, ref e);

-> a = 1, b = 2, c = 3, d = 4, e = 5

Однако, я не могу написать такую функцию:

private void ParseAndWrite(string leInput, params ref double[] targets)
{
   (...)
}

Это не работает, по какой-то причине нельзя использовать ref и params одновременно. Почему так?

edit: Хорошо, вот еще немного информации о том, зачем мне это нужно: Через интерфейс я получаю много строк, содержащих значения, с таким синтаксисом:

inputConfig : " step, stepHeight, rStep, rStepHeight, (nIterations, split, smooth) "
outputConfig : " dataSelection, (corrected, units, outlierCount, restoreOriginalRange) "

(имена в скобках необязательны). Эти значения должны быть разобраны и сохранены в определенных переменных. То есть - это вовсе не массивы. Они больше похожи на аргументы командной строки, но их около 20. Я, конечно, могу сделать все это последовательно, но это порождает сотни строк кода, которые содержат избыточный шаблон и плохо поддаются сопровождению.

10
задан user 10 August 2012 в 22:38
поделиться