1. 程式人生 > >C#基礎知識 簡單說明泛型的優點

C#基礎知識 簡單說明泛型的優點

操作 自己 進行 ren pos body list() 而且 類型

有關泛型的優缺點在網上有很多篇文章,也足以說明問題,我就不去復制粘貼了(而且內容有些多),由於記性不太好,所以自己做個簡單明了的總結。

泛型的優點主要有兩個:

  • “性能”
  • “安全”

性能從何談起?很簡單,看個粟子。

            //裝箱與拆箱操作很容易使用,但是對性能的損失較大,尤其是遍歷許多項時非泛型
            var list = new ArrayList();
            list.Add(4); //boxing 裝箱操作
            int i1 = (int)list[0];//unboxing- convert a reference to a value type 拆箱操作
foreach (int i2 in list) { Console.WriteLine(i2);//unboxing 拆箱操作 } //泛型 var list = new List<int>(); list.Add(4);//no boxing 不需要裝箱操作,因為value的type在List<int>中已經指定。 int i1 = list[0];//不需要再使用(int)進行拆箱操作。
foreach (int i2 in list) { Console.WriteLine(i2);//不再需要拆箱操作。 }

安全性,指的是類型安全

            //非泛型
            var list = new ArrayList();
            list.Add(44);
            list.Add("String");
            list.Add(new Class());
            //沒有指定類型的情況下,集合中可以添加任意的類型,添加時不會有異常,但是在遍歷時會引發異常
            
//泛型 var list = new List<int>(); list.Add(44); list.Add("String"); //compile time error

C#基礎知識 簡單說明泛型的優點