文章 "轻松快捷开发 MetaTrader 程序的函数库(第 二十七部分):操控交易请求 - 下挂单" - 页 5

 
Реter Konow:
一切顺利,一切顺利。各取所需。
我正在阅读文章,但我找不到 "实体生成器"--即实现这一切的原理。我试图学习如何以这种方式思考,并理解为什么我的思考方式与众不同。用不同的方式思考有什么好处(如果有的话)。我把图书馆计划也告诉了阿尔乔姆。


从本质上讲,图书馆计划就像三卢布一样简单。奇怪的是,它根本不需要。
但如果把所有的相互关系都画出来,更容易让读者感到困惑。毕竟,许多对象都会使用其相邻对象的数据。但它们都位于各自的集合中。而集合在基础 CEngine 中。如果有了用户函数,就会有两个访问库的点。而且还会有更多的连接。
 
Artyom Trishkin:
该计划非常简单,只需 3 卢布。奇怪的是,它根本不需要。
但是,如果把所有的相互关系都画出来,更容易让读者感到困惑。毕竟,许多对象都会使用其相邻对象的数据。但它们都在各自的集合中。而集合在基础 CEngine 中。如果有了用户函数,就会有两个访问库的点。而且还会有更多的连接。
好了,让我们阅读并研究其中的奥妙吧......)。
 
//+------------------------------------------------------------------+
// 根据属性比较 CPendingReq 对象
//+------------------------------------------------------------------+
int CPendingReq::Compare(const CObject *node,const int mode=0) const
  {
   const CPendingReq *compared_req=node;
   return
     (
      //--- 按 ID 进行比较
      mode==0  ?  
      (this.ID()> compared_req.ID() ? 1 : this.ID()< compared_req.ID() ? -1 : 0)   :
      //--- 按类型进行比较
      (this.Type()> compared_req.Type() ? 1 : this.Type()< compared_req.Type() ? -1 : 0)
     );
  }
//+------------------------------------------------------------------+

类型或 ID 不能相等?

 
BillionerClub:

类型或 Id 不能相等?

我不明白问题的意思。请澄清一下。

 
Artyom Trishkin:

我不明白问题的意思。请澄清一下。

在比较时,总有可能出现相等的情况

this.Type()>=compared_req.Type()
 
BillionerClub:

当你进行比较时,总有一种情况是可能实现平等的。

这里要检查三个条件:

this.Type()>compared_req.Type() ? 1 : this.Type()<compared_req.Type() ? -1 : 0

大于 (1)小于 (-1)其余 (0)

 
Artyom Trishkin:

这里测试了三个条件:

大于 (1)小于 (-1)其余 (0)

伙计,我真笨,没看懂代码的含义)) ))