Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            try
            {
                var stack = new FixedStack <string>(8);
                // добавляем четыре элемента
                stack.Push("Kate");
                stack.Push("Sam");
                stack.Push("Alice");
                stack.Push("Tom");

                // извлекаем один элемент
                var head = stack.Pop();
                Console.WriteLine(head);    // Tom

                // просто получаем верхушку стека без извлечения
                head = stack.Peek();
                Console.WriteLine(head);    // Alice
            }
            catch (InvalidOperationException ex)
            {
                Console.WriteLine(ex.Message);
            }


            Console.Read();
        }
Ejemplo n.º 2
0
 private IEnumerable <IUndoItem> PopUntil(FixedStack <IUndoItem> stack, IUndoItem sentinel)
 {
     while (stack.HasItems && stack.Peek() != sentinel)
     {
         yield return(stack.Pop());
     }
 }
Ejemplo n.º 3
0
        public unsafe void Peek_Item_Success()
        {
            var expected = new TestStruct()
            {
                X = 3, Y = 1
            };

            FixedStack <TestStruct> sut = stackalloc TestStruct[1];

            sut.Push(expected);

            var testStruct = sut.Peek();

            Assert.AreEqual(1, sut.Count);

            Assert.AreEqual(3, testStruct.X);
            Assert.AreEqual(1, testStruct.Y);
        }
Ejemplo n.º 4
0
 public void Initialize(IState startState)
 {
     stateStack.Push(startState);
     stateStack.Peek().Enter();
 }