萬事開頭難,今天先從隨筆開始,記錄工作中平時不太注意到的知識點。今天開始說下泛型。
泛型在我們專案中很是常見,使用很廣泛,我覺的它有以下幾個優點。
1.安全性。
2.效能。
3.二進位制**的重用。
4.**的擴充套件。
下面從**方面分析下這些優點。
1.安全性。
這段**只有執行起來的時候才會報錯, 秉著錯誤得先發現的原則,這種寫法不合適。
1var text = new
arraylist();
2 text.add(44
);3 text.add("
mystring");
4foreach (int item in
text)
5
如果換成泛型,試試看。
1var list = new list();
2 list.add(44
);3 list.add("
mystring
");//
會編譯器會直接報錯
2.效能。
同樣使用非泛型集合,新增資料,並輸出。 可以看出,新增進集合進行了裝箱操作,賦值的時候又進行了拆箱操作。一裝一拆效能就會影響效能。
1var text = new
arraylist();
2 text.add(12);3
int a = (int)text[0];
如果換成泛型,試試看。 泛型定義為int,int型別在編譯器動態生成的類中使用,不會進行裝箱和拆箱的操作。
1var list = new list();
2 list.add(44);3
int b = list[0];
3.二進位制**的重用。
泛型可以使用多個型別來進行例項化。
1var list = new list();
2 list.add(44);3
var str = new list();
4 str.add("
str");5
var studentclass = new list();
6 studentclass.add(new student());
4.**的拓展。
對不同的型別的泛型,進行例項化的時候,程式編譯的時候,如果是引用型別,所有例項化的類都共用同乙個本地類相同的實現**,如果是值型別,會為每個值型別例項化乙個新類。
第一次開始記錄,有錯誤的地方,希望大家多多包涵。
理解C 泛型
在c 2.0中引入了泛型,泛型的出現解決了編碼中的很多問題。相信大家一定經常用到 system.collections.generic 命名空間中的泛型集合類 generic 就是泛型的意思 在c 1.0中,我們還在使用 system.collections 命名空間中的非泛型集合類,那麼看看我們在...
C 泛型總結
泛型,比較廣泛的資料型別。泛型是資料型別的一種通用表示形式,它可以表示任何一種資料型別 泛型的定義和引用 泛型是具有佔位符 型別引數 的類 結構 介面 和方法。它與普通類的區別是泛型多了乙個或多個表示型別的佔位符,這些佔位符永尖括號括起來。public class myclass 定義屬性mypro...
按自己的想法去理解事件和泛型(C )
不喜歡官方的表達方式,喜歡按照自己的想法去理解一些抽象的東西,我是乙個喜歡簡單怕麻煩的人。考慮到委託使用的一些缺陷,就有了事件。委託是不安全的,打個比方,如果把委託當作共有字段,那麼事件就相當於是屬性的概念。事件就是被限制使用的委託變數,事件裡面封裝了乙個多播委託。事件語法 public event...