新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 389

 
一个程序中可以有两个本体功能吗?
 
Максим Дмитриев:
一个程序中可以有两个本体功能吗?
不!
 
Максим Дмитриев:
一个程序中可以有两个本体功能吗?
一。
但谁能阻止它运行自定义的OnTickOne()、OnTickTwo()、OnTickThree()等?
 
Максим Дмитриев:    一个程序中可以有两个本体功能吗?

自己检查很容易。

这是第二个。

// Так работает, но вызывается только OnTick()
void OnTick()
{
  Alert("Вызов функции OnTick()");
}

void start()
{
  Alert("Вызов функции start()");
}
如果你留下一个单一的启动功能,它也可以工作。毕竟,开始是一个过时的名字。更时尚的名字是OnTick。据统计,时尚是一种更频繁的现象。
 
STARIJ:

自己检查很容易

对第二个人说脏话

如果你留下一个启动功能,它也能发挥作用。毕竟,开始是一个过时的名字。一个更时尚 的名字是OnTick。时尚--在统计学上,它意味着更频繁。

这与时尚无关。问题是,在某些时候,对过时的功能的支持将停止。而 "mods "也不会受到影响。但那些仍然使用过时功能的人--他们会纠正多年来积累的一切。

 
Artyom Trishkin:

这与时尚无关。问题是,在某些时候,对过时的功能的支持将停止。而 "mods "也不会受到影响。但那些仍在使用过时功能的人--他们将纠正所有多年的工作。

我想知道的是,如果有一天这些事件处理函数 可能被禁用,为什么CodeBase仍然接受使用这些非常陈旧的事件处理函数 的代码?

 
Alexey Viktorov:

我确实想知道为什么CodeBase继续接受使用相同的过时的事件处理功能 的代码,如果它们可以在某些时候被关闭?

谁知道呢......?给SD的问题。

 
Alexey Viktorov:

让我吃惊的是,如果有一天这些功能可能被禁用,为什么CodeBase继续接受使用那些过时的事件处理功能 的代码?

这很简单。从这个同时包含start和OnTick的例子来看,编译器对它们的感知是不同的,在ex4代码中的显示也不同。Ex4执行器也对它们进行了区分--OnTick() 事件处理程序是OnTick()函数,如果没有它,则是start()函数。如果取消start()函数,就需要重新设计编译器(MetaEditor和Terminal中都有)和Terminal的执行器。

其结果将是MetaEditor和Terminator代码的微不足道的减少+新的错误。还有如山的尖叫声。他们需要这样做吗?

 
STARIJ:

这很简单。从包含start和OnTick的例子来看,编译器对它们的感知是不同的,在ex4代码中的显示也不同。Ex4执行器也对它们进行了区分--OnTick事件的处理程序是OnTick()函数,如果没有它,则是start()函数。放弃start()函数,需要重新设计编译器(MetaEditor和Terminal都有)和Terminal的执行器。

其结果将是MetaEditor和Terminal中微小的代码减少+新的bug。还有如山的哭声。他们需要这样做吗?

我不是说它们是如何工作的,而是说如果它们可能很快就停止工作,为什么要在CodeBase中接受这样的代码。

 
Alexey Viktorov:

我不是在说它们是如何工作的,而是为什么要在CodeBase中接受这样的代码,如果它们可能很快就会停止工作。

我想我解释过,他们会永远工作