萬事開頭難,今天先從隨筆開始,記錄作業中平時不太注意到的知識點,今天開始說下泛型,
泛型在我們專案中很是常見,使用很廣泛,我覺的它有以下幾個優點,
1.安全性,
2.性能,
3.二進制代碼的重用,
4.代碼的擴展,
下面從代碼方面分析下這些優點,
1.安全性,
這段代碼只有運行起來的時候才會報錯, 秉著錯誤得先發現的原則,這種寫法不合適,
1 var text = new ArrayList(); 2 text.Add(44); 3 text.Add("mystring"); 4 foreach (int item in text) 5 { 6 Console.Write(item); 7 }
如果換成泛型,試試看,
1 var list = new List<int>(); 2 list.Add(44); 3 list.Add("mystring");//會編譯器會直接報錯
2.性能,
同樣使用非泛型集合,添加資料,并輸出, 可以看出,添加進集合進行了裝箱操作,賦值的時候又進行了拆箱操作,一裝一拆性能就會影響性能,
1 var text = new ArrayList(); 2 text.Add(12); 3 int a = (int)text[0];
如果換成泛型,試試看, 泛型定義為int,int型別在編譯器動態生成的類中使用,不會進行裝箱和拆箱的操作,
1 var list = new List<int>(); 2 list.Add(44); 3 int b = list[0];
3.二進制代碼的重用,
泛型可以使用多個型別來進行實體化,
1 var list = new List<int>(); 2 list.Add(44); 3 var str = new List<string>(); 4 str.Add("str"); 5 var Studentclass = new List<Student>(); 6 Studentclass.Add(new Student());
4.代碼的拓展,
對不同的型別的泛型,進行實體化的時候,程式編譯的時候,如果是參考型別,所有實體化的類都共用同一個本地類相同的實作代碼,如果是值型別,會為每個值型別實體化一個新類,
第一次開始記錄,有錯誤的地方,希望大家多多包涵,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/103487.html
標籤:C#
