@herr_kaizer

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

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

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

Так вот, возник вопрос, как лучше сделать: оставить всё как есть (передавать массив от метода к методу) или стоит создавать промежуточный список (List) в статическом классе, и манипулировать данными уже в нём? Что об этом говорит ООП и как это повлияет на производительность? А если массив передавать строго по ссылке через ref?
  • Вопрос задан
  • 320 просмотров
Решения вопроса 2
@LiguidCool
На самом деле не так важно. С точки зрения ООП было бы логично внутри класса объявить приватную переменную.
Ответ написан
Dier_Sergio_Great
@Dier_Sergio_Great
Увлеченный человек
если данные массива являются ссылками на объекты, то создавая приватный массив внутри метода для обработки или не создавая а просто передавая массив в качестве аргумента в приватный метод, и в том и в другом случае работа ведеться с одними и теми же данными в не зависимости будите вы объявлять приватный массив для имеющегося или не будите.
Но Вы пишите что массив является не что иное как данные картинки. Т.е. сам массив является объектом , а данные в нем являются байтами, в таком случае объявляя локальную переменную массива и присваивая имеющийся объект массива объявленной переменной, не будет создаваться копия массива, а будет создаваться копия ссылки.
Значит потеря производительности небудет.
.
Теперь возникает другой вопрос. Код программы нужно писать так чтобы его можно было читать удобно стороннему человеку. Значит если вы напишите в публичном методе последовательность приватных методов идущих друг за другом - будет более читабельным нежели если вы напишите эти самые методы вложенные друг в друга, и в каждом методе будет размещаться один другой этого же класса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы