.NET泛型程式設計簡介 (轉)
泛型已經離我們不遠了,在最近隨 SERVER Yukon Beta1發行的.NET 1.2中就已經有了泛型的影子。雖然現在它還是問題多多,但是相信隨著新版.NET Framework的正式發行(正式發行時的版本號會是2.0),這些問題會得到解決。因此我們也該為.NET泛型程式設計做些準備了。
:namespace prefix = o ns = "urn:schemas--com::office" />
.NET是一個單根繼承系統,所有的型別都派生自。我以前一直認為在單根繼承系統中用不著泛型。既然所有的東西都可以作為Object傳遞,又何必使用泛型呢?只是增加複雜度而已,除了看起來高深一點,似乎沒有別的什麼好處了。但是,當兩個最著名的單根系統,和.NET,都勢不可擋地要加入泛型程式設計時,我不免要重新審視這個問題——為什麼一定要泛型程式設計?
歸納起來,泛型比非泛型具有下面兩個優點:
1、 更加
在非泛型程式設計中,雖然所有的東西都可以作為Object傳遞,但是在傳遞的過程中免不了要進行型別轉換。而型別轉換在執行時是不安全的。使用泛型程式設計將可以減少不必要的型別轉換,從而提高安全性。
2、 更高
在非泛型程式設計中,將簡單型別作為Object傳遞時會引起Boxing和Unboxing操作,這兩個過程都是具有很大開銷的。使用泛型程式設計就不必進行Boxing和Unboxing操作了。
.NET泛型具有很好的二進位制重用性。這一點得益於.NET將泛型內建在CLR之中。C++泛型和評估中Java泛型所依靠的是它們各自的所提供的特性,編譯器在編譯泛型程式碼時將確切的型別展開,這就難免會出現程式碼膨脹的問題。而.NET的泛型程式碼是在執行時由JIT即時編譯的,這樣CLR就可以為不同型別重用大部分的即時編譯程式碼了。
下面兩篇文章詳細地介紹了.NET中的泛型程式設計:
x">More on Generics in the CLR
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 泛型程式設計泛型程式設計
- java 泛型程式設計Java泛型程式設計
- [.net 物件導向程式設計基礎] (18) 泛型物件程式設計泛型
- [CUJ]泛型程式設計--轉移建構函式 (轉)泛型程式設計函式
- 十、GO程式設計模式 : 泛型程式設計Go程式設計設計模式泛型
- BASH SHELL 程式設計簡介(轉)程式設計
- Go泛型草案設計簡明指南Go泛型
- java筆記-two-java泛型程式設計(簡記)Java筆記泛型程式設計
- 泛型程式設計詳解(一)泛型程式設計
- 泛型程式設計與 OI——modint泛型程式設計
- TS類,介面,泛型的簡介泛型
- 物件導向程式設計和`GP`泛型程式設計物件程式設計泛型
- 【java】【泛型】泛型geneticJava泛型
- c++ 泛型程式設計 之 TypeListsC++泛型程式設計
- c++ 泛型 程式設計 之 Functor 設計模式C++泛型程式設計設計模式
- C++ 簡單實現陣列類泛型程式設計示例C++陣列泛型程式設計
- 泛型粒子系統的設計1 (轉)泛型
- 泛型粒子系統的設計2 (轉)泛型
- 泛型粒子系統的設計3 (轉)泛型
- 泛型粒子系統的設計4 (轉)泛型
- 泛型粒子系統的設計5 (轉)泛型
- 泛型粒子系統的設計6 (轉)泛型
- 泛型粒子系統的設計7 (轉)泛型
- 面向方面程式設計的Annotation簡介(轉)程式設計
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- GO語言泛型程式設計實踐Go泛型程式設計
- windows程式設計簡介Windows程式設計
- shell程式設計簡介程式設計
- Java桌面應用程式設計:SWT 簡介(轉)Java程式設計
- IO程式設計和NIO程式設計簡介程式設計
- 使XML程式設計更簡單---JDOM介紹及程式設計指南 (轉)XML程式設計
- 在C語言中實現泛型程式設計C語言泛型程式設計
- C語言如何實現泛型程式設計?C語言泛型程式設計
- Swift使用協議加泛型程式設計(一)Swift協議泛型程式設計
- C++ primer 模板與泛型程式設計C++泛型程式設計
- 泛型型別(.NET 指南)泛型型別
- Telnet簡介(轉)
- c++ 泛型程式設計 之 自動生成程式碼C++泛型程式設計