Создать промежуточную переменную или передавать аргумент от функции к функции?
================================================================================

 Пишу приложение для квантования изображений, обучаясь C#.   
  

Сейчас у меня есть статический класс-контроллер, в котором есть public-метод, который принимает массив (представляющий изображение) и передаёт его private-методу, который, в свою очередь, что-нибудь делает с этим массивом и передаёт его следующему private-методу, и так далее (всего такая передача происходит 5 раз).  
  

Так вот, возник вопрос, как лучше сделать: оставить всё как есть (передавать массив от метода к методу) или стоит создавать промежуточный список (List) в статическом классе, и манипулировать данными уже в нём? Что об этом говорит ООП и как это повлияет на производительность? А если массив передавать строго по ссылке через ref? 

 На самом деле не так важно. С точки зрения ООП было бы логично внутри класса объявить приватную переменную. 

 если данные массива являются ссылками на объекты, то создавая приватный массив внутри метода для обработки или не создавая а просто передавая массив в качестве аргумента в приватный метод, и в том и в другом случае работа ведеться с одними и теми же данными в не зависимости будите вы объявлять приватный массив для имеющегося или не будите.   

Но Вы пишите что массив является не что иное как данные картинки. Т.е. сам массив является объектом , а данные в нем являются байтами, в таком случае объявляя локальную переменную массива и присваивая имеющийся объект массива объявленной переменной, не будет создаваться копия массива, а будет создаваться копия ссылки.  

Значит потеря производительности небудет.  

.  

Теперь возникает другой вопрос. Код программы нужно писать так чтобы его можно было читать удобно стороннему человеку. Значит если вы напишите в публичном методе последовательность приватных методов идущих друг за другом - будет более читабельным нежели если вы напишите эти самые методы вложенные друг в друга, и в каждом методе будет размещаться один другой этого же класса.