AX 2009 Stack类和StackBase类

Stack类和StackBase类

Stack是一种后进先出的数据结构类型(Last In First Out),只能容纳一种类型,即容器类型(container)。

所以它的push方法的参数是container类型的,我们可以["Something"]这样写。

 

StackBase是Stack的子类,加强型。这个命名够蛋疼的,不知道的还以为是Stack的父类。StackBase除了

拥有Stack类似的特性外,它还可以容纳任意指定的类型,并增加了索引方法peek。

 

代码如下

 

static void StackJob(Args _args)
{
    Stack       m_stack = new Stack();
    StackBase   m_stackBase = new StackBase(Types::String);
    ;
    m_stack.push(["Item001"]);
    m_stack.push(["Item002"]);
    info(strfmt("%1",m_stack.qty())); // 2
    info(strfmt("%1",conpeek(m_stack.pop(),1))); //Item002
    info(strfmt("%1",conpeek(m_stack.pop(),1))); //Item001
    
    info("=============");
    
    m_stackBase.push("A");
    m_stackBase.push("B");
    info(strfmt("%1",m_stackBase.count()));  // 2
    info(strfmt("%1",m_stackBase.peek(2)));  // B
    info(strfmt("%1",m_stackBase.pop()));  //B
    info(strfmt("%1",m_stackBase.pop()));  //A
}

 

posted @ 2011-10-09 14:40  Kurodo  阅读(356)  评论(0编辑  收藏  举报