一、引入泛型:延遲聲明,即在聲明的時候沒有指定參數類型,只有當調用的時候纔會肯定 其參數類型(架構師的理念:推遲一切能夠推遲的)緩存
二、如何聲明和使用泛型架構
三、泛型的好處和原理函數
四、泛型類、泛型方法、泛型委託、泛型接口性能
五、泛型約束spa
六、協變、逆變(選修)blog
七、Typeof()和GetType()的區別:Typeof(類名).Name:獲取類的名稱;參數名稱.GetType().Name: 獲取參數的名稱(疑問)繼承
八、編譯的時候,泛型類型參數編譯爲佔位符;程序運行的時候,jit即時編譯替換爲真實類 型。接口
九、爲何要有泛型:有相同的邏輯,不肯定參數類型時,實現代碼的重用,又解決性能的 問題it
十、編譯
十一、作依賴注入時,用泛型方法會比泛型類簡單點。
十二、約束有:基類約束、接口約束,也能夠多個一塊兒約束,是與(&&)的關係
1三、約束類型共有5種,除了類約束、接口約束,還有:值類型約束、引用類型約束、無參數構造函數約束,默認返回值均可以
成:return default(T);
只有約束爲無參數構造函數約束時,才能夠:T t=new T();
1四、協變和逆變只能出如今接口或者委託
int:逆變,只能是參數傳入
out:協變,只能是返回值傳出
實例:
說明:Sparrow類繼承自Bird類
協變、逆變的用處體現有:Func委託,如Func<int,out>...
15、泛型緩存: