Читаем C# 4.0: полное руководство полностью

    return stck.Length;

  }


  // Возвратить количество объектов, находящихся в данный момент в стеке,

  public int GetNum() {

    return tos;

  }

}


class StackDemo {

  static void Main() {

    Stack stk1 = new Stack(10);

    Stack stk2 = new Stack(10);

    Stack stk3 = new Stack(10);

    char ch;

    int i;


    // Поместить ряд символов в стек stk1.

    Console.WriteLine("Поместить символы А-J в стек stk1.");

    for(i=0; !stk1.IsFull(); i++)

      stk1.Push((char)('A' + i));

    if(stk1.IsFull())

      Console.WriteLine("Стек stk1 заполнен.");


    // Вывести содержимое стека stk1.

    Console.Write("Содержимое стека stk1: ");

    while( !stk1.IsEmpty()) {

      ch = stk1.Pop();

      Console.Write(ch);

    }


    Console.WriteLine();


    if(stk1.IsEmpty())

      Console.WriteLine("Стек stk1 пуст.");


    // Поместить дополнительные символы в стек stk1.

    Console.WriteLine("Вновь поместить символы А-J в стек stk1.");

    for(i=0; !stk1.IsFull(); i++)

      stk1.Push((char)('A' + i));


    // А теперь извлечь элементы из стека stk1 и поместить их в стек stk2.

    // В итоге элементы сохраняются в стеке stk2 в обратном порядке.

    Console.WriteLine("А теперь извлечь символы из стека stk1\n" +

          "и поместить их в стек stk2.");

    while( !stk1.IsEmpty()) {

      ch = stk1.Pop();

      stk2.Push(ch);

    }


    Console.Write("Содержимое стека stk2: ");

    while( !stk2.IsEmpty() ) {

      ch = stk2.Pop();

      Console.Write(ch);

    }


    Console.WriteLine("\n");


    // Поместить 5 символов в стек.

    Console.WriteLine("Поместить 5 символов в стек stk3.");

    for(i=0; i < 5; i++)

      stk3.Push((char) ('A' + i)) ;


    Console.WriteLine("Емкость стека stk3: " + stk3.Capacity());

    Console.WriteLine("Количество объектов в стеке stk3: " 

          + stk3.GetNum());

  }

}


При выполнении этой программы получается следующий результат.


Поместить символы А-J в стек stk1.

Стек stk1 заполнен.

Содержимое стека stk1: JIHGFEDCBA

Стек stk1 пуст.


Вновь поместить символы А-J в стек stk1.

А теперь извлечь символы из стека stk1

и поместить их в стек stk2.

Содержимое стека stk2: ABCDEFGHIJ


Поместить 5 символов в стек stk3.

Емкость стека stk3: 10

Количество объектов в стеке stk3: 5


Передача объектов методам по ссылке

В приведенных до сих пор примерах программ при указании параметров, передаваемых методам, использовались типы значений, например int или double. Но в методах можно также использовать параметры ссылочного типа, что не только правильно, но и весьма распространено в ООП. Подобным образом объекты могут передаваться методам по ссылке. В качестве примера рассмотрим следующую программу.


// Пример передачи объектов методам по ссылке.

using System;

class MyClass {

  int alpha, beta;


  public MyClass(int i, int j) {

    alpha = i;

    beta = j;

}


  // Возвратить значение true, если параметр ob

  // имеет те же значения, что и вызывающий объект,

  public bool SameAs(MyClass ob) {

    if ((ob.alpha == alpha) & (ob.beta == beta))

      return true;

    else

      return false;

  }


  // Сделать копию объекта ob.

Перейти на страницу:

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных