我們在開發中經常用到泛型,下面一起通過il來檢視泛型背後做了那些工作
示例**如下:
通過這可以看到泛型在解釋時,也會生成乙個新的class gett(!!t):!!t
.method public hidebysig static
void main (
string args
) cil managed
\t value2:"
il_0018: ldloc.0
il_0019: box [mscorlib]system.int32
il_001e: ldloc.1
il_001f: call void [mscorlib]system.console::writeline(string, object, object)
il_0024: nop
il_0025: ret
} // end of method genericexample::main通過上面的il**可知:泛型在執行時會自動轉化型別
IL檢視泛型
我們在開發中經常用到泛型,下面一起通過il來檢視泛型背後做了那些工作 示例 如下 通過這可以看到泛型在解釋時,也會生成乙個新的class gett t t void main string args cil managed t value2 il 0018 ldloc.0il 0019 box ms...
IL檢視委託
通過il來檢視委託的原理,寫乙個委託的類如下 namespace mycollection的倍數是 num,num 2 求整數的平方public static void square int num 的平方是 n num,num num delegate void intop int x 定義乙個委...
泛型 泛型類 泛型方法 泛型擦除
1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...