C#.NET中的泛型(帶參數的類)在棧中的運用

來源:互聯網
上載者:User

/*
 * 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類型,則這裡是一次拆箱操作
        }
    }
}
輸出結果:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.