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
}
{
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
}
作者:Kurodo
出处:http://Kurodo.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
出处:http://Kurodo.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。