泛型概述
泛型的概念
泛型是通過(guò)參數(shù)化類(lèi)型來(lái)實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類(lèi)型的技術(shù)
利用“參數(shù)化類(lèi)型”講類(lèi)型抽象化 ?從而實(shí)現(xiàn)靈活的復(fù)用
泛型核心
1 ?減少裝箱和拆箱 ? 提高運(yùn)行效率
List<int> list = new List<int>();
2 ? 類(lèi)型安全
List<int>list = new List<int>();
3 ?代碼重用
泛型的優(yōu)點(diǎn)
1. 泛型增強(qiáng)了代碼性的可讀性
2.泛型有助于實(shí)現(xiàn)代碼的重用 ?保護(hù)類(lèi)型的安全以及提高性能
3 我們可以創(chuàng)建泛型集合類(lèi)
4. 泛型實(shí)現(xiàn)了類(lèi)型和方法的參數(shù)化
5. 我們還可以對(duì)泛型類(lèi)進(jìn)行約束以訪(fǎng)問(wèn)特定數(shù)據(jù)類(lèi)型的方法
6.關(guān)于泛型數(shù)據(jù)類(lèi)型中使用的額類(lèi)型的信息可以在裕興時(shí)通過(guò)使用反射獲取
泛型的約束
T:struct 類(lèi)型參數(shù)必須是值類(lèi)型 ?可以指定除Nullable 意外的任何值類(lèi)型?
T:class 類(lèi)型參數(shù)化必須是引用類(lèi)型 ?包括任何類(lèi) 接口 委托或數(shù)組類(lèi)型
T:new()類(lèi)型參數(shù)必須具有無(wú)參數(shù)的公共構(gòu)造函數(shù) ?當(dāng)與其他約束一起使用時(shí),new{}約束必須最后指定
T:<基類(lèi)名> ?類(lèi)型參數(shù)必須是指定的基類(lèi)或派生自指定的基類(lèi)子類(lèi)
T:<接口名稱(chēng)> ?類(lèi)型參數(shù)必須是指定的接口或?qū)崿F(xiàn)指定的接口 ?可以指定多個(gè)接口約束 ?約束接口也可以是泛型的
泛型緩存
類(lèi)中的靜態(tài)類(lèi)型 ?無(wú)論被使用多少次內(nèi)存中都只存在一個(gè) ?靜態(tài)構(gòu)造函數(shù)只會(huì)執(zhí)行一次
在泛型類(lèi)中 ?T類(lèi)型不同,每個(gè)不同的T類(lèi)型 ?都會(huì)產(chǎn)生一個(gè)不同的副本 ?所以會(huì)產(chǎn)生不同的靜態(tài)屬性 ?靜態(tài)構(gòu)造函數(shù)
(注:1.泛型緩存比字典緩存效率高 ? ?2.泛型緩存不能主動(dòng)釋放)
?
轉(zhuǎn)載于:https://www.cnblogs.com/-zillb/p/11159806.html
總結(jié)
- 上一篇: 如何做一个简单的DIY家具?
- 下一篇: 【小o地图Excel插件版】不止能做图表