Я хочу сделать что-то вроде этого:
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 из них. Я могу, конечно, сделать все это последовательно, но это создает сотни строк кода, которые содержат избыточный шаблон и не очень удобны в обслуживании.