Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет, использование массива вместо перечисления - это плохой дизайн.
Пример: Представьте, что у вас есть строковое значение. И задача состоит в том, чтобы выяснить, равна ли эта строка/содержит ли она в себе одно из имен элементов перечисления (EnumToString()).
Как бы вы решили эту задачу?
Можете ли вы привести реальную ситуацию, в которой такое необходимо? Enum - это просто константы, почему вы хотите определить строку внутри элементов?
Если вы хотите построить структуру хеджирования.
Но потом я просто сравниваю все, чтобы выявить реальную стоимость.
Можете ли вы привести реальную ситуацию, когда такая вещь необходима? Enum - это просто константы, почему вы хотите определить строку внутри элементов?
Мой вопрос был просто примером. Топикстартер описал другой. Я понимаю, что они не достаточно "реальны" для вас и каждый может использовать обходные пути, но это не делает эти задачи не реальными для людей, которые их решают.
И мы все еще застряли здесь... Решение может быть найдено только для реальной проблемы. Знаете ли вы реальную проблему ОП? Я не знаю.
Я знаю МНОГО реальных ситуаций, когда это было бы полезно. Вот почему я использую подход с массивами, потому что другого пути нет.
Пример: У вас есть перечисление/список чего-то (допустим, опции языка GUI для вашей программы), и вы хотите создать радиокнопки для этого, чтобы пользователь мог выбирать. Вы НЕ ХОТИТЕ впоследствии менять код кнопок, если вы измените количество элементов в перечне.
И вам нужно получить значение перечисления из имени кнопки, чтобы применить его к вашей программе. Вы НЕ ХОТИТЕ писать код для КАЖДОГО элемента в перечислении, вам нужно простое решение в рамках цикла.
Это можно применить не только к языкам, но и ко многим другим вещам:
Есть много способов делать одни и те же вещи.
Ну, я знаю, по крайней мере, одну, потому что я ее использую.
И это не делает функцию, о которой мы говорим, бесполезной. Вы можете забить гвоздь камнем, но это не значит, что вы всегда должны это делать.
Я знаю МНОГО реальных ситуаций, когда это было бы полезно. Вот почему я использую подход с массивами, потому что другого пути нет.
1. У вас есть перечисление/список чего-то (допустим, опции языка GUI для вашей программы), и вы хотите создать радиокнопки для этого, чтобы пользователь мог выбирать. Вы НЕ ХОТИТЕ впоследствии менять код кнопок, если вы измените количество элементов в перечне.
И вам нужно получить значение перечисления из имени кнопки, чтобы применить вашу программу. Вы НЕ ХОТИТЕ писать код для КАЖДОГО элемента в перечислении, вам нужно простое решение в рамках цикла.
Это можно применить не только к языкам, но и ко многим другим вещам:
Я знаю Андрея. Ваш пример требует динамического решения, поэтому вы используете не enum, а массив. Если вы хотите использовать enum (статический) для чего-то динамического (ваш пример), то это плохой дизайн. Мне кажется, мы говорим об одном и том же.
Мы не можем помочь ОП больше, поскольку он не сказал, зачем ему на самом деле нужен цикл.
Ну, я знаю, по крайней мере, одну, потому что я ее использую.
И это не делает функцию, о которой мы говорим, бесполезной. Вы можете забить гвоздь камнем, но это не значит, что вы должны делать это всегда.
Даже язык Java существовал без ЛЮБОГО типа enum очень долгое время, и поскольку Java редко использует чистые массивы, было много других OO способов итерации списка значений. Я бы не стал называть это камнем и гвоздем.