![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Длина никогда не бывает неизвестной, и эта тема - просто результат плохого дизайна.
Что вы имеете в виду под "длиной перечисления"?
Возможно, морковь - не фрукт... Я до сих пор не понимаю, что Xiangdong Guo имеет в виду под "длиной перечисления".
Количество букв в строковом имени каждого варианта?
Сколько вариантов возможно?
Числовое значение опции?
Не только плохой дизайн, но и не очень понятно, что он имеет в виду.
Количество значений, так 5 в вашем примере фруктов.
Я согласен, что это статическое значение, оно не может быть переменным, поэтому всегда будет известным фиксированным значением для начала.
Однако если Xiangdong Guo тестирует индикаторы, которые он не разрабатывал и не писал сам, и хочет узнать или определить входные параметры автоматически...
Не уверен, как знание количества доступных вариантов может помочь, возможно, он хочет провести перекрестное тестирование всех доступных вариантов и просто ищет количество тестов для запуска?
Я бы просканировал предполагаемые варианты для разрешения этих значений, как только вы попытаетесь преобразовать из границ доступных вариантов, он выдаст ошибку cannot convert enum error since it does not exist.
MT4/MT5 используют функции C++/C# для извлечения элемента из перечисления. Но MetaQuotes не переносит эти функции на MQL4/MQL5. Хм... хм...
MT4/MT5 используют функции C++/C# для извлечения элемента из перечисления. Но MetaQuotes не переносит эти функции на MQL4/MQL5. Хм... хм...
Какую функцию? В чем проблема? Почему вы хотите перебирать элементы перечисления?
Если кто-то хочет/не хочет сделать что-то, что невозможно в MQL, это не обязательно означает "плохой дизайн".
К началу темы: в текущей версии MQL невозможно сделать то, что вы хотите.
Единственный способ - скопировать все элементы в массив и сделать цикл, используя этот массив. Но это возможно только тогда, когда/если вы сможете модифицировать код.
Если кто-то хочет/не хочет сделать что-то, что невозможно в MQL, это не обязательно означает "плохой дизайн".
К началу темы: в текущей версии MQL невозможно сделать то, что вы хотите.
Единственный способ - скопировать все элементы в массив и сделать цикл, используя этот массив. Но это возможно только тогда, когда/если вы сможете модифицировать код.
Использование перечисления вместо массива - это плохой дизайн. Не так ли?
Использование перечисления вместо массива - это плохой дизайн. Не так ли?
Нет, использование массива вместо перечисления - это плохой дизайн.
Пример: Представьте, что у вас есть строковое значение. И задача состоит в том, чтобы выяснить, равна ли эта строка/содержит ли она одно из имен элементов перечисления (EnumToString()).
Как бы вы решили эту задачу?