C 泛型內部原理

2021-06-09 21:30:37 字數 1048 閱讀 8733

泛型相當於c++的模板

泛型方法

static

void fly(t i,k t)

泛型委託

delegate

void

mydelegate

(t1 t1,t2 t2);

.net中的func<>泛型

eventhandler 委託事件

泛型約束

•       約束父類或者介面:aaawhere t:idbconnection

class

personlist

where t : person }

class

person }

class

chinese:person }

•       

•       約束建構函式:aaa where t:new(), aaawhere t:new()。

•       泛型建立乙個返回n個物件的方法。

•       泛型建立乙個對任意資料進行取最大元素的方法

如:這能夠約束泛型的型別:對泛型委託和泛型類都一樣的

static

list

createlist(int n) where t : new()//只能是無引數的建構函式

returnlist;}

int?其實就是泛型的型別nullable(通過reflector 反編譯)

lazy<>懶做的物件,作用是當用到這物件時才建立物件

lazy

person = new

lazy

();fly("aa",3);

stringss=  person.value.name;

//lazy

的value

用來延遲建立物件

,以減少記憶體

自己寫乙個

lazy

class

mylazy

where t : new()

returninstance;}}

} 欄位是物件被new出來了以後

default(t)

泛型,內部類

對於泛型,不要求怎麼使用,要求看原始碼時能看懂就行。泛型的意義 1,自動進行型別的檢查 2,自動進行型別的轉換 泛型的一些重點 1,泛型時怎麼編譯的?擦除機制 object 2,泛型的型別 不參與型別的組成 3,泛型的引數不能是簡單型別 看乙個簡單的泛型示例 class myarraylist pu...

內部類和泛型

內部類就是在類中的類。在原始碼中經常看到,但是原始碼中常見的都是靜態內部類,最常見的型別就是資料型別a.資料型別b,也就是a.b 這種型別。1 threadlocal.threadlocalmap 2 map中的各種靜態結構等等 3 獲取得到單例物件在以前學習j a的時候,我們通常喜歡在乙個類外面定...

C 泛型應用及原理

泛型 generic 是c 語言2.0和通用語言執行時 clr 的乙個新特性。泛型為.net框架引入了型別引數 type parameters 的概念。型別引數使得設計類和方法時,不必指定方法有乙個或多個具體引數,而是在呼叫方法的時候再去指定。這意味著使用泛型的型別引數t,寫乙個方法mylist,客...