我使用MT4枚举作为选择输入:
enum ENUM_myChoice{
a, b, c, e, f, g
};问题是如果我必须按字母顺序将"d“添加到列表中,
我使用e,f或g的所有模板都被毁了,因为它们被关闭了1。
这是一种优雅的解决方案,还是唯一的蛮力?
提前感谢
发布于 2016-12-31 21:47:26
MQL4 enum anEnumNAME{...};语法是如何工作的?
井,
既然你需要保存
“老”"d“(没有的enum ) ordering
和字母顺序-顺序也是
只有enum,有一件事是肯定的--您不能像上面建议的那样使用。
enum将MQL4实现为编译器阶段注册“命名常量”的语法糖,并将这些元素转换为新的特定数据类型的有序枚举(在编译阶段与其他强类型语言数据类型不匹配)。
规则:如果某个值没有分配给作为枚举成员的名为常数的,则它的新值将自动形成。如果它是枚举的第一个成员,则将将0值赋值给它。对于所有后续成员,值将根据先前成员的值通过添加一个来计算。
这意味着,你不能混淆和破坏字母表顺序和顺带排列顺序(正如在后面的标题:“按外观顺序”中所述)。
那么一个人能做什么呢?
一个Rainman解决方案(“去Holbrook,with Charlie Babbit”):
enum ENUM_myChoice{
a = uchar( "a" ),
b = uchar( "b" ),
c = uchar( "c" ),
e = uchar( "e" ),
f = uchar( "f" ),
g = uchar( "g" ),
// ----------------- WHERE ONE CAN BENEFIT AN OUT-OF-ORDINAL ORDER ADDING:
d = uchar( "d" )
};https://stackoverflow.com/questions/41401988
复制相似问题