C 泛型自己的理解和總結

2022-02-13 14:48:50 字數 1333 閱讀 9289

萬事開頭難,今天先從隨筆開始,記錄工作中平時不太注意到的知識點。今天開始說下泛型。

泛型在我們專案中很是常見,使用很廣泛,我覺的它有以下幾個優點。

1.安全性。

2.效能。

3.二進位制**的重用。

4.**的擴充套件。

下面從**方面分析下這些優點。

1.安全性。

這段**只有執行起來的時候才會報錯,  秉著錯誤得先發現的原則,這種寫法不合適。

1

var text = new

arraylist();

2 text.add(44

);3 text.add("

mystring");

4foreach (int item in

text)

5

如果換成泛型,試試看。

1

var list = new list();

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();

2 list.add(44);3

int b = list[0];

3.二進位制**的重用。

泛型可以使用多個型別來進行例項化。

1

var 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...