問題:
你想在乙個新的專案中使用,或在現有的專案上把非泛型的型別轉換成它們的泛型表示。但是,你卻不知道自己為什麼想這樣做,並且你也不知道哪些非泛型型別應該被轉換成它們的泛型表示。
解決方法:
決定何時何地使用泛型,你需要考慮以下幾件事: l
你的型別將包含或者以多種不確定的資料型別來執行嗎?如果是這樣,那麼建立乙個泛型將比建立乙個非泛型提供很多好處。如果你的型別將只以一種確定的型別執行,那麼你就沒必要去建立乙個泛型了。 l
如果你的型別是值型別,那麼就會發生裝箱和拆箱操作,你應該考慮使用泛型去避免這些操作。 l
跟泛型關聯的強型別檢查會導致很快就檢查到錯誤(比如在編譯時,而不是在執行時),因此,縮短你的糾錯週期。 l
隨著你要寫好幾個類去處理不同的資料型別的執行(比如乙個arraylist只儲存
streamreaders
,而另乙個則只儲存streamwriters
),你的**是否受到「臃腫」的困擾?泛型很容易做到只寫一次**,就可以實現執行每種型別進行工作。 l
泛型會得到非常清晰的**。去除**的臃腫,對你的型別強制使用強型別檢查,你的**會更容易閱讀和理解。
討論:
在大部分情況,你的**都是適合使用泛型的。泛型會產生更高的**重用,更好的效能,強型別檢查和易讀的**。
C 食譜 麵食 選單4 List
首先,先說明一下,linkedlist其實是乙個雙向鍊錶 乙個linkedlist物件其實就是一系列linkedlistnode物件的集合。每乙個linkedlistnode物件都可以訪問下乙個和前乙個linkedlistnode物件,其值是通過value屬性訪問的。現在,開始我們的效能比較 lis...
C 食譜 風味小吃 選單2 角度轉換為弧度
問題 當使用math 類的三角函式的時候,所有的單位都是用弧度表示的。你有乙個或多個角是用角度數度量的,並且希望把它們轉換為弧度數,從而可以用它們作為 math 類的成員。解決方法 要把乙個角度數轉換為弧度數,只要乘以 p 180 即可 using system public static doub...
C 生成無限級別選單
最近開發的乙個專案中用到了無限級別選單,因此將此 貼出來,以供研究,開發環境為vs2008 sql 2000。首先,建立資料庫表的 如下 ifexists select from dbo.sysobjects where id object id n dbo work sysmenu andobje...