C#基礎知識 簡單說明泛型的優點
阿新 • • 發佈:2017-12-23
操作 自己 進行 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#基礎知識 簡單說明泛型的優點