Скачать MetaTrader 5

MQL5 количество записей в перечислении

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
prostotrader
3066
prostotrader  
Как узнать сколько записей в enum ?
o_o
Модератор
23920
o_o  
prostotrader:
Как узнать сколько записей в enum ?
никак

https://www.mql5.com/ru/forum/1638

https://www.mql5.com/ru/forum/80276

prostotrader
3066
prostotrader  
Alexey Volchanskiy
17385
Alexey Volchanskiy  
prostotrader:
Как узнать сколько записей в enum ?

Надо всегда завершать перечисление элементом eEnd и не присваивать членам значения.

enum ETest {e0, e1, e2, e3, eEnd};

void OnStart()
{
    ETest et = ETest(eEnd);
    Print("Number of ETest members is: ", et+1); // 2016.09.26 18:12:22.581      TestEnum (EURUSD.e,M1)  Number of ETest members is: 5
}

 ***

o_o
Модератор
23920
o_o  
Alexey Volchanskiy:

Надо всегда завершать перечисление элементом eEnd и не присваивать членам значения.

не универсально, но для своего кода подойдет
Alexey Volchanskiy
17385
Alexey Volchanskiy  
o_O 2016.09.26 17:52      RU
Alexey Volchanskiy:

Надо всегда завершать перечисление элементом eEnd и не присваивать членам значения.

не универсально, но для своего кода подойдет

Само собой, не универсально и для своего кода. Под понятием не присваивать я имел в виду не делать так, может, неправильно назвал эту операцию

enum ETest {e0 = -12, e1=3, e2=45, e3=-1, eEnd=123};

void OnStart()
{
    ETest et = ETest(eEnd);
    Print("Number of ETest members is: ", et+1); 
}
prostotrader
3066
prostotrader  
Alexey Volchanskiy:

Само собой, не универсально и для своего кода. Под понятием не присваивать я имел в виду не делать так, может, неправильно назвал эту операцию

С присваиванием значения получается

2016.09.28 00:14:22.158 WriteSymbols (RTS-12.16,M1)     Number of ETest members is: 123
Alexey Volchanskiy
17385
Alexey Volchanskiy  
prostotrader:

С присваиванием значения получается

А вы что ожидали? eEnd=123

Смысл enum понимаете? 

prostotrader
3066
prostotrader  
Alexey Volchanskiy:

А вы что ожидали? eEnd=123

Смысл enum понимаете? 

Вы писали?

enum ETest {e0 = -12, e1=3, e2=45, e3=-1, eEnd=123};

void OnStart()
{
    ETest et = ETest(eEnd);
    Print("Number of ETest members is: ", et+1); // 2016.09.26 18:12:22.581      TestEnum (EURUSD.e,M1)  Number of ETest members is: 5
Alexey Volchanskiy
17385
Alexey Volchanskiy  
prostotrader:

Вы писали?

Опс, скопипастилось из предыдущего примера, спасибо, поправил
prostotrader
3066
prostotrader  
Alexey Volchanskiy:
Опс, скопипастилось из предыдущего примера, спасибо, поправил
Что поправили?
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий