/*
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-15
* Time: 15:57
*
* 泛型在棧中的運用
*/
using System ;
class A<T>//注意這個類的寫法,<T>代表的是一種資料類型(如int,string,byte等)
{
private T[] stack;//定義資料類型為T的數組
private int count;
public A(int size)
{
stack=new T[size];
count=0;
}
public void input(T ip)
{
stack[count++]=ip;
}
public T output()
{
return stack[--count];
}
}
class B
{
static void Main()
{
A<string> a=new A<string> (10);//執行個體化定義的類,這裡T指代的是string類型的。
System.Console .WriteLine ("請輸進棧成員:");
string line=Console.ReadLine ();
string trimLine=line.Trim();
string[] strList=trimLine.Split (' ');
int emptyCount=0;//記錄空白記錄的個數
foreach(string s in strList)
{
if (s.Trim ()!="")
{
a.input(s);//如果上面用定義的數組用object類型,則這裡是一次裝箱操作
}
else
{
emptyCount+=1;
}
}
Console.WriteLine ("出棧順序為:");
for(int i=0;i<strList.Length-emptyCount ;i++)
{
Console.WriteLine (a.output());//如果上面用定義的數組用object類型,則這裡是一次拆箱操作
}
}
}
輸出結果: