Массив используется там, где нужна гибкость. Т.е. там, где разработчик не может предугадать, сколько параметров придёт при вызове метода, какие типы данных будут иметь передаваемые значения и т.п. За такую гибкость разработчик должен платить, создавая код обработки массива, что может быть весьма нетривиальной задачей. Кроме трудоёмкости и сложности кода получите ещё и потерю производительности. Излишней гибкости следует избегать.
В общем случае лучше передавать либо несколько параметров, либо строго типизированный объект с заданными полями. Причём при передаче большого количества параметров тоже могут быть просадки с производительностью.