C# 中泛型与非泛型?(摘)
生活随笔
收集整理的這篇文章主要介紹了
C# 中泛型与非泛型?(摘)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在編寫程序時,經常遇到兩個模塊的功能非常相似,只是一個是處理int數據,另一個是處理string數據,或者其他自定義的數據類型,但我們沒有辦法,只能分別寫多個方法處理每個數據類型,因為方法的參數類型不同。
泛型用用一個通過的數據類型T來代替object,在類實例化時指定T的類型,運行時(Runtime)自動編譯為本地代碼,運行效率和代碼質量都有很大提高,并且保證數據類型安全。
C#泛型類在編譯時,先生成中間代碼IL,通用類型T只是一個占位符。在實例化類時,根據用戶指定的數據類型代替T并由即時編譯器(JIT)生成本地代碼,這個本地代碼中已經使用了實際的數據類型,等同于用實際類型寫的類,所以不同的封閉類的本地代碼是不一樣的。
按照這個原理,我們可以這樣認為:泛型類的不同的封閉類是分別不同的數據類型。
?
C# 泛型集合之非泛型集合類與泛型集合類的對應:
ArrayList對應List
HashTable對應Dictionary
Queue對應Queue
Stack對應Stack
SortedList對應SortedList
?
未完待續
轉載于:https://www.cnblogs.com/oralig/p/7694680.html
總結
以上是生活随笔為你收集整理的C# 中泛型与非泛型?(摘)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CentOS6.8下搭建zookeepe
- 下一篇: Epplus:导出Excel