爲什麼需要使用泛型類<T>

 使用泛型行的最大好處就是代碼重用,合理的使用泛型可以大大的解決我們編寫代碼的數量,同時也可以提高我們的程序性能

下面我通過一個簡單的例子講解

   現在我們需要一個處理兩個數據類型,int 類型和String的數據,他們都需要用到棧的操作,當我沒沒有泛型的時候需要寫出兩個棧

的數據結構

  2.1 處理int類型

複製代碼

public class Stack

    {

        private int[] m_item;

        public int Pop(){...}

        public void Push(int item){...}

        public Stack(int i)

        {

            this.m_item = new int[i];

        }

}

複製代碼

2.2處理字符串類型

複製代碼

public class Stack

    {

        private string[] m_item;

        public string Pop(){...}

        public void Push(string item){...}

        public Stack(int i)

        {

            this.m_item = new string[i];

        }

}

複製代碼

2.3當然我們也可以用object代替int 和string類型的

複製代碼

public class Stack

    {

        private object[] m_item;

        public object Pop(){...}

        public void Push(object item){...}

        public Stack(int i)

        {

            this.m_item = new[i];

        }

      

    }

2.4上面這個棧可以處理任何數據類型的數據,應爲object是所有類的基類。雖然這樣寫可以處理各種數據類型,但在其中存在這拆箱和裝箱,如果數據太多會影響到程序的性能,
因此在c#2.0的時候泛型就此誕生了,他借鑑C++的模板爲我們提供了泛型,在使用泛型的時候程序會在編譯階段根據我們提供的類型生成相應的二進制代碼,無須進行裝箱和拆箱

因此在上面的代碼中我們可以使用泛型解決代碼如下,這樣我們也可以對於任何數據類型都可以使用這個棧了

複製代碼

public class Stack<T>

    {

        private T[] m_item;

        public T Pop(){...}

        public void Push(T item){...}

        public Stack(int i)

        {

            this.m_item = new T[i];

        }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章