{ return tos;
}
}
class StackDemo {
static void Main() {
Stack stkl = new Stack (10);
Stack stk2 = new Stack(lO);
Stack stk3 = new Stack(10);
char ch; int i;
// Поместить ряд символов в стек stkl.
Console.WriteLine('Поместить символы А-J в стек stkl.'); for(i=0; !stkl.IsFull(); i++) stkl.Push ((char) ('A1 + i));
if(stkl.IsFull()) Console.WriteLine('Стек stkl заполнен.');
// Вывести содержимое стека stkl.
Console.Write('Содержимое стека stkl: '); while( !stkl.IsEmpty() ) {
ch = stkl.Pop();
Console.Write(ch);
}
Console.WriteLine();
if(stkl.IsEmpty()) Console.WriteLine('Стек stkl пуст.п');
// Поместить дополнительные символы в стек stkl.
Console.WriteLine('Вновь поместить символы А-J в стек stkl.'); for(i=0; !stkl.IsFull(); i++) stkl.Push((char) ('A' + i));
// А теперь извлечь элементы из стека stkl и поместить их в стек stk2. // В итоге элементы сохраняются в стеке stk2 в обратном порядке. Console.WriteLine('А теперь извлечь символы из стека stkl ' +
'и поместить их в стек stk2.'); while( !stkl.IsEmpty() ) {
ch = stkl.Pop(); stk2.Push(ch);
Console.Write('Содержимое стека stk2: '); while( !stk2.IsEmpty() ) {
ch = stk2.Pop();
Console.Write(ch);
}
Console.WriteLine(' ');
// Поместить 5 символов в стек.
Console.WriteLine('Поместить 5 символов в стек stk3.'); for(i=0; i < 5; i++)
stk3.Push((char) ('A1 + i)) ;
Console.WriteLine('Емкость стека stk3: ' + stk3.Capacity()); Console.WriteLine('Количество объектов в стеке stk3: ' + stk3.GetNum());
}
}
При выполнении этой программы получается следующий результат.
Поместить символы А-J в стек stkl.
Стек stkl заполнен.
Содержимое стека stkl: JIHGFEDCBA Стек stkl пуст.
Вновь поместить символы А-J в стек stkl.
А теперь извлечь символы из стека stkl и поместить их в стек stk2.
Содержимое стека stk2: ABCDEFGHIJ
Поместить 5 символов в стек stk3.
Емкость стека stk3: 10 Количество объектов в стеке stk3: 5
Передача объектов методам по ссылке
В приведенных до сих пор примерах программ при указании параметров, передаваемых методам, использовались типы значений, например int или double. Но в методах можно также использовать параметры ссылочного типа, что не только правильно, но и весьма распространено в ООП. Подобным образом объекты могут передаваться методам по ссылке. В качестве примера рассмотрим следующую
