打字问题 - 页 6 12345678910 新评论 Ilya Malev 2018.12.10 13:29 #51 在我印象中,C#不是mql的好朋友。 Igor Makanu 2018.12.10 13:32 #52 Ilya Malev: 在我印象中,C#与mql不是好朋友。https://www.mql5.com/ru/forum/285631 10.MQL5: 增加了对具有 "智能 "函数导入的.NET库的本地支持。现在,你可以使用.NET库,而不需要编写特殊的包装器--MetaEditor负责这些。 Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 2018.10.25www.mql5.com 26 октября 2018 года будет выпущена обновленная версия платформы MetaTrader 5... Vasiliy Sokolov 2018.12.10 14:02 #53 不叫用C#来写。只是,隐性转换的好处是值得怀疑的(imho,糖,没有了),它不会增加战略的盈利能力。如果有人能解释为什么在编码策略时有如此大的帮助,我将很高兴能学到新的东西。 Ilya Malev 2018.12.10 14:08 #54 Vasiliy Sokolov: 它不会增加战略的盈利能力。在讨论编程技术时提到策略的盈利能力是相当令人沮丧的。 瓦西里-索科洛夫。 如果有人能解释为什么它对编码有如此大的帮助--我很高兴能学到新东西。 你甚至不能正确制作你自己的多维数组。更不用说一个有不同类型值的数组了。你甚至不能只用一个来做,因为这样的代码不适合于mql。 Array array; double d=123.456; array[5]=d; d=array[5]; 当然,你可以写d=array[5].to_double(),假装它应该是这样,并为你的丑陋代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人愿意用这种方式来写d=array[5]。 Vasiliy Sokolov 2018.12.10 14:37 #55 Ilya Malev:... 当然,你可以写d=array[5].to_double(),假装这是对的,并为你的错误代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人会喜欢这种写d=array[5]的方式。直截了当。d=array[5] 可以。 template <typename T> class MainArray { private: T m_items[]; int m_curr; public: MainArray() { ArrayResize(m_items, 16); m_curr = 0; } void Add(T item) { m_items[m_curr++] = item; } T operator[](int index) { return m_items[index]; } }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { MainArray<double> array; array.Add(123.456); double v = array[0]; printf((string)v); } 如果你变得书呆子,Array[3]=4.00123;仍有困难,但它是可读的,而且很好。 Ilya Malev 2018.12.10 14:41 #56 Vasiliy Sokolov:对。d=array[5]就可以了。 如果你觉得无聊,那么用array[3]=4.00123;就有困难了,但它的可读性很强,也足够好。是的,d=array[5]就可以了。但这样你就不能让array[5]=d。但你可以用%=代替=。没问题,同时,图标会提醒我们一切是通过什么地方完成的)) fxsaber 2018.12.10 14:52 #57 Ilya Malev:是的,d=array[5]可以。但这样你就不能使array[5]=d。但你可以用%=来代替=,没问题,而且图标会提醒你用哪个地方))如果你真的想这样做,你可以这样做 #property strict #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280 #define PRINT(A) ::Print(#A + " = " + (string)(A)); void OnStart( void ) { // Работа со стандартными типами color Color = C'241,248,255'; PRINT(_R(Color)[(uchar)1]) // Green-составляющая цвета - 248 _W(Color)[2] = (uchar)230; // Записали по смещению 2 значение (uchar)230. PRINT(Color) // Убедились, что Color теперь C'241,248,230' // Работа со строками string Str = "abcd"; _W(Str)[2] = "98765"; // Побайтовая запись строки в строку со смещением 2 PRINT(Str) string StrArray[] = {"123", "45", "6789"}; _W(Str) = StrArray; // Записали в строку строковый массив PRINT(Str) _W(Str)[3] = (uchar)0; // В байт со смещением 3 записали ноль, тем самым отбрезав строку (длина - 3 ANSI-символа (4 байта)) PRINT(Str); }等。 TheXpert 2018.12.10 14:54 #58 pavlick_:我一开始也很挑剔,但后来我想--我自己会找到它的用途。 大约三四年前,我要求提供一个小括号运算符和一个葡萄籽 运算符。 你问,也许你能做得更好。 Ilya Malev 2018.12.10 14:57 #59 真可惜,你不能在你的帖子上添加褒义词)。 Dmitry Fedoseev 2018.12.10 15:15 #60 Ilya Malev:... 当然,你可以写d=array[5].to_double(),假装这是对的,并为你的错误代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人会喜欢这种写d=array[5]的方式。人们有什么问题))))哦,保佑我的生活 顺便说一下,写d=array[5].to_double()比d=(double)array[5]容易得多,只要按一个点就行了。但我们不是在寻找简单的方法... 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在我印象中,C#与mql不是好朋友。
https://www.mql5.com/ru/forum/285631
10.MQL5: 增加了对具有 "智能 "函数导入的.NET库的本地支持。现在,你可以使用.NET库,而不需要编写特殊的包装器--MetaEditor负责这些。
它不会增加战略的盈利能力。
在讨论编程技术时提到策略的盈利能力是相当令人沮丧的。
如果有人能解释为什么它对编码有如此大的帮助--我很高兴能学到新东西。
你甚至不能正确制作你自己的多维数组。更不用说一个有不同类型值的数组了。你甚至不能只用一个来做,因为这样的代码不适合于mql。
当然,你可以写d=array[5].to_double(),假装它应该是这样,并为你的丑陋代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人愿意用这种方式来写d=array[5]。
...
当然,你可以写d=array[5].to_double(),假装这是对的,并为你的错误代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人会喜欢这种写d=array[5]的方式。
直截了当。d=array[5] 可以。
如果你变得书呆子,Array[3]=4.00123;仍有困难,但它是可读的,而且很好。
对。d=array[5]就可以了。
如果你觉得无聊,那么用array[3]=4.00123;就有困难了,但它的可读性很强,也足够好。
是的,d=array[5]就可以了。但这样你就不能让array[5]=d。但你可以用%=代替=。没问题,同时,图标会提醒我们一切是通过什么地方完成的))
是的,d=array[5]可以。但这样你就不能使array[5]=d。但你可以用%=来代替=,没问题,而且图标会提醒你用哪个地方))
如果你真的想这样做,你可以这样做
等。
我一开始也很挑剔,但后来我想--我自己会找到它的用途。
大约三四年前,我要求提供一个小括号运算符和一个葡萄籽 运算符。
你问,也许你能做得更好。
...
当然,你可以写d=array[5].to_double(),假装这是对的,并为你的错误代码感到高兴。但是如果允许类型转换操作的重载,几乎没有人会喜欢这种写d=array[5]的方式。
人们有什么问题))))哦,保佑我的生活
顺便说一下,写d=array[5].to_double()比d=(double)array[5]容易得多,只要按一个点就行了。但我们不是在寻找简单的方法...