enum DURATION_INTERVALS // Enumeration of named constants
{
month=1, // Interval of one month
two_months, // Two months
quarter, // Three months - quarter
halfyear=6, // Half a year
year=12, // Year - 12 months
};
input DURATION_INTERVALS HistoryDuration = month;
长度从来都是未知的,这个话题只是由一个糟糕的设计造成的。
你说的 "枚举的长度 "是什么意思?
也许胡萝卜不是一种水果......我还是不明白郭向东 说的'枚举的长度'是什么意思
每个选项字符串名称中的字母数?
可能有多少个选项?
选项的数值?
不仅设计不好,而且也不太清楚他的意思。
值的数量,所以在你的水果的例子中是5。
我同意它是静态的,它不可能是可变的,所以将总是一个已知的固定值开始。
然而,如果郭向东 ,测试不是他自己设计或编写的指标,并想知道或自动检测输入参数......
不知道知道知道可用选项的数量会有什么帮助,也许他想交叉测试所有可用的选项,只是在寻找要运行的测试数量?
我将扫描假定的选项来解决这些值,一旦你试图转换出可用选项的边界,它将产生不能转换枚举的错误,因为它不存在。
MT4/MT5使用C++/C#函数 从枚举中检索项目。但MetaQuotes并没有将这些函数移植到MQL4/MQL5。哼...哼...
MT4/MT5使用C++/C#函数从枚举中检索项目。但MetaQuotes并没有将这些函数移植到MQL4/MQL5。哼...哼...
哪个函数?问题是什么?为什么你想在枚举的项目中循环?
如果有人想/需要做一些MQL不可能做到的事情,这并不一定意味着 "设计不好"。
对于话题的发起人来说:在当前版本的MQL中,不可能做到你想要的事情。
唯一的方法是将所有的项目复制到一个数组中,并使用该数组进行循环。但这只有在你能修改代码的时候才可以做到。
如果有人想/需要做一些MQL不可能做到的事情,这并不一定意味着 "设计不好"。
对于话题的发起人来说:在当前版本的MQL中,不可能做到你想要的事情。
唯一的方法是将所有的项目复制到一个数组中,并使用该数组进行循环。但是,这只有在你能修改代码的情况下才能做到。
使用一个枚举而不是一个数组是一个糟糕的设计。不是吗?
使用枚举而不是数组是一个糟糕的设计。不是吗?
不,使用数组而不是枚举是一个糟糕的设计。
举个例子。想象一下,你有一个字符串值。任务是找出这个字符串是否等于/包含其中的一个枚举项的名称(EnumToString())。
你将如何解决这个问题?