progs.biz  
Начало>C#>Основы>Урок 65
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

С. Робинсон и др C# для профессионалов.
С. Робинсон и др C# для профессионалов.
Заказать на Озоне



Яндекс-цитирования

Основы C#
Урок 65. Класс Stack

Класс Stack предназначен для хранения некоторых данных произвольного типа. Он находится в пространстве имен System.Collections.

Основной принцип действия этого класса - "первый вошел, последний вышел".

Вот пример использования этого класса:

// Создаем класс для добавления его экземпляров в стек.
class DataClass
{
    public int a;
    public int b;
    public DataClass(int a, int b)
    {
        this.a = a;
        this.b = b;
    }
    public override string ToString()
    {
        return "a = " + a + ", b = " + b;
    }
}

Теперь займемся непосредственно стеком.

// Добавляем данные в стек.
Stack st = new Stack();
DataClass q = new DataClass(2, 3);
st.Push(q);
q = new DataClass(10, 100);
st.Push(q);

// Смотрим последние добавленные данные (без удаления их из стека).
DataClass t = (DataClass)st.Peek();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();

// Извлекаем последние добавленные данные (с удалением их из стека).
t = (DataClass)st.Pop();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();

t = (DataClass)st.Pop();
Console.WriteLine(t);
Console.WriteLine("Count: " + st.Count);
Console.WriteLine();

Пример достаточно ясен из комментариев.

Класс Stack позволет обойти все свои элементы. Это можно сделать, например, вот так:

    foreach (DataClass d in st)
    {
        Console.WriteLine(d.ToString());
    }

Обратите внимание, на то, что тип данных в стеке не определен (вернее, в стеке хранятся данные типа Object). Поэтому мы везде вынуждены делать приведение типов.

Из других полезных методов и свойств следует отметить еще Clear (очищает весь стек), Contains (позволяет определить, содержит ли наш стек какой-нибудь элемент), ToArray (возвращает массив, состоящий из элементов стека).

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев