Организация возвращаемых значений

199
09 декабря 2021, 08:00

Как решаются в проф программировании такие моменты ?

У меня например есть метод, который может вернуть string и в зависимости от этого ответа - есть 4 варианта дальнейшего развития.

А возвращает он такие вещи в зависимости от конструкций if/else:

return "OK";
return "ERROR|MISSING"
return "ERROR|NOT_SOLVED"
return "ERROR|OTHER"

А дальше, другой метод разбирается что с этим делать.

Или нужно использовать там byte например для такого или как то иначе вообще ?

Answer 1

Создаёшь enum со своими значениями и используешь его.

Answer 2

Как выше отметили, строковые константы можно заменить enum'ом.

Однако, это не решает проблемы, когда нужно возвращать различные в зависимости от разных условий=> появляется огромный case или if, где перебираются различные условия и который тяжело поддерживать.

Если условий не так много и в будущем не планируется их расширять, то этот вариант может прокатить.

При большом кол-ве условий, можно попробовать применить шаблон-Состояние или если результат зависит от типа класса, то можно решить проблему через наследование, а затем в каждой конкретной реализации переопределить метод и возвращать 1 из значений.

READ ALSO
Интегрирование методом Монте Карло

Интегрирование методом Монте Карло

Пишу программу для интегрирования методом Монте КарлоС моей перспективы код рабочий, а результаты получаются более менее схожие

99
Вставка PDF-файла на форму. Ошибка Visual Studio 2015. C#

Вставка PDF-файла на форму. Ошибка Visual Studio 2015. C#

Помогите найти решение проблемыПосле того как я пытаюсь перенести на форму с панели элементов Adobe PDF Reader, генерируется ошибка "Сбой при импорте...

177
Выбранный путь некорректно вносится в БД

Выбранный путь некорректно вносится в БД

В программе есть OpenFileDialogВ нем я выбираю путь и вношу в переменную route

129
Использование делегата EventHandler

Использование делегата EventHandler

Помогите разложить в голове схему использования события, основанного на предоставляемом делегате EventHandler на примере простой задачи(видел...

65