日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

C#泛型自己的理解和總結(jié)

 軟件開(kāi)發(fā)組 2020-06-24

萬(wàn)事開(kāi)頭難,今天先從隨筆開(kāi)始,記錄工作中平時(shí)不太注意到的知識(shí)點(diǎn)。今天開(kāi)始說(shuō)下泛型。

泛型在我們項(xiàng)目中很是常見(jiàn),使用很廣泛,我覺(jué)的它有以下幾個(gè)優(yōu)點(diǎn)。

1.安全性。

2.性能。

3.二進(jìn)制代碼的重用。

4.代碼的擴(kuò)展。

下面從代碼方面分析下這些優(yōu)點(diǎn)。

1.安全性。

這段代碼只有運(yùn)行起來(lái)的時(shí)候才會(huì)報(bào)錯(cuò),  秉著錯(cuò)誤得先發(fā)現(xiàn)的原則,這種寫(xiě)法不合適。

復(fù)制代碼

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  }

復(fù)制代碼

如果換成泛型,試試看。

1 var list = new List<int>();2 list.Add(44);3 list.Add("mystring");//會(huì)編譯器會(huì)直接報(bào)錯(cuò)

2.性能。

同樣使用非泛型集合,添加數(shù)據(jù),并輸出。    可以看出,添加進(jìn)集合進(jìn)行了裝箱操作,賦值的時(shí)候又進(jìn)行了拆箱操作。一裝一拆性能就會(huì)影響性能。

1  var text = new ArrayList();2  text.Add(12);3  int a = (int)text[0];

如果換成泛型,試試看。   泛型定義為int,int類(lèi)型在編譯器動(dòng)態(tài)生成的類(lèi)中使用,不會(huì)進(jìn)行裝箱和拆箱的操作。

1 var list = new List<int>();2 list.Add(44);3 int b = list[0];

3.二進(jìn)制代碼的重用。

泛型可以使用多個(gè)類(lèi)型來(lái)進(jìn)行實(shí)例化。

復(fù)制代碼

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

復(fù)制代碼

4.代碼的拓展。

對(duì)不同的類(lèi)型的泛型,進(jìn)行實(shí)例化的時(shí)候,程序編譯的時(shí)候,如果是引用類(lèi)型,所有實(shí)例化的類(lèi)都共用同一個(gè)本地類(lèi)相同的實(shí)現(xiàn)代碼,如果是值類(lèi)型,會(huì)為每個(gè)值類(lèi)型實(shí)例化一個(gè)新類(lèi),詳細(xì)內(nèi)容,同學(xué)可以查找相關(guān)的c#教程

第一次開(kāi)始記錄,有錯(cuò)誤的地方,希望大家多多包涵。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多