Если вы пытаетесь написать свой код «функциональным способом», вы можете найти «Curry» полезным и создать значимые объекты-функторы, которые инициализируются всего парой параметров.Если функция принимает много параметров, их список может (или должен) обычно делиться на значимые куски, и каррирование должно образовывать цепочку функций со значимым намерением.
Таким образом, вместо (пример этого ответа):
run(x, y, max_x, true, false, dx * 2, range_start, range_end, 0.01, true);
вы можете использовать
// initialize functors
run_in_userbox = run(x, y, max_x);
run_with_bounds = run_in_userbox(true, false);
iterate_within_bounds = run_with_bounds(dx * 2, range_start, range_end, 0.01);
result = iterate(true); //computation only starts here
Я не знаю, если C #поддерживает это, но именно так проблема обычно решается в функциональных языках.