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

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

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

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

 
Спасибо, понятно
 
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
}

 ***

 
Alexey Volchanskiy:

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

не универсально, но для своего кода подойдет
 
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); 
}
 
Alexey Volchanskiy:

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

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

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

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

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

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

 
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
 
prostotrader:

Вы писали?

Опс, скопипастилось из предыдущего примера, спасибо, поправил
 
Alexey Volchanskiy:
Опс, скопипастилось из предыдущего примера, спасибо, поправил
Что поправили?