泛型方法 為什么要使用泛型?使用泛型有什么作用?
為什么要使用泛型?使用泛型有什么作用?泛型的功能是提高代碼的可重用性。你一定知道函數(shù)重載,但是重載太麻煩了。要編寫如此多的重復(fù)代碼,泛型可以避免強(qiáng)制類型轉(zhuǎn)換、減少裝箱、提高性能和減少錯(cuò)誤所有泛型方法聲
為什么要使用泛型?使用泛型有什么作用?
泛型的功能是提高代碼的可重用性。你一定知道函數(shù)重載,但是重載太麻煩了。要編寫如此多的重復(fù)代碼,泛型可以避免強(qiáng)制類型轉(zhuǎn)換、減少裝箱、提高性能和減少錯(cuò)誤
所有泛型方法聲明都有一個(gè)類型參數(shù)聲明部分(用尖括號(hào)分隔),位于方法的返回類型之前(在下面的示例中,<E>)。
每個(gè)類型參數(shù)聲明部分包含一個(gè)或多個(gè)由逗號(hào)分隔的類型參數(shù)。泛型參數(shù)(也稱為類型變量)是用于指定泛型類型名稱的標(biāo)識(shí)符。
類型參數(shù)可用于聲明返回值類型,并可用作通過泛型方法獲得的實(shí)際參數(shù)類型的占位符。
泛型方法的主體聲明與任何其他方法一樣。注意,類型參數(shù)只能表示引用類型,不能表示基元類型(如int、double、char等)。
泛型方法?
泛型實(shí)際上有一個(gè)流行的名稱:參數(shù)化類型(使用參數(shù)指示要傳遞的類型)。
它明確指定運(yùn)行時(shí)集合中對(duì)象的類型。
如果沒有泛型,那么我的所有對(duì)象都將通過直接使用object和cast來解決,不是嗎?但是,這個(gè)方法有一個(gè)問題,即在運(yùn)行時(shí)可以隨處看到cast異常ClassCastException。
如果指定了參數(shù)化類型,我們將在編譯時(shí)檢查它。如果傳入列表類型,則只能將字符串放入列表中。如果添加其他類型,編譯將不會(huì)通過,更不用說運(yùn)行時(shí)檢查了。
。
。
所以當(dāng)你說泛型是參數(shù)化的,如果你不理解它們,那就結(jié)束了
泛型。也就是說,通過參數(shù)化類型,可以在同一代碼上操作多個(gè)數(shù)據(jù)類型。泛型是在C#2.0中引入的。泛型的字面含義是它可以對(duì)多種數(shù)據(jù)類型進(jìn)行操作,這類似于模板。優(yōu)點(diǎn):泛型類和泛型方法具有非泛型類和非泛型方法所不具備的可重用性、類型安全性和效率。泛型通常與集合和作用于它們的方法一起使用。泛型是C#2.0的一個(gè)新特性,它提高了使用C#語言編寫面向?qū)ο蟪绦虻男屎挽`活性。它不強(qiáng)制值類型的裝箱和拆箱,也不強(qiáng)制引用類型的類型轉(zhuǎn)換,因此性能得到了提高。泛型編程允許您編寫完全通用和可重用的算法,其效率與為特定數(shù)據(jù)類型設(shè)計(jì)的算法相同。STL是泛型編程的代表作,是一種高效、通用、可互操作的軟件構(gòu)件。所謂泛化是指它可以對(duì)多種數(shù)據(jù)類型進(jìn)行操作,這與模板類似。STL是巨大的,可以擴(kuò)展。它包含了許多計(jì)算機(jī)的基本算法和數(shù)據(jù)結(jié)構(gòu),并將算法與數(shù)據(jù)結(jié)構(gòu)完全分離。該算法是通用的,不與任何特定的數(shù)據(jù)結(jié)構(gòu)或?qū)ο箢愋拖嚓P(guān)聯(lián)。STL是一個(gè)基于迭代器和容器的通用算法庫。容器的存在使得這些算法具有可操作性。STL包括各種通用算法、迭代器、容器和函數(shù)對(duì)象。STL不僅僅是有用組件的集合,它是一種形式化的、有組織的體系結(jié)構(gòu),用來描述軟件組件的抽象需求。
List集合使用泛型與不使用泛型有什么區(qū)別?
通用是C#2.0和通用語言運(yùn)行時(shí)(CLR)的新功能。泛型將類型參數(shù)的概念引入到。Net框架。類型參數(shù)使得在設(shè)計(jì)類和方法時(shí)不必確定一個(gè)或多個(gè)特定參數(shù),并且它們的特定參數(shù)可以延遲到在客戶代碼中聲明和實(shí)現(xiàn)。這意味著使用泛型類型參數(shù)t來編寫一個(gè)類mylist<T>,客戶機(jī)代碼可以這樣調(diào)用它:mylist< int>、mylist< string>或mylist< MyClass>。這樣可以避免運(yùn)行時(shí)類型轉(zhuǎn)換或裝箱操作的成本和風(fēng)險(xiǎn)
泛型類型集合:參數(shù)化類型,在類或方法中將參數(shù)的類型定義為泛型(不確定類型),并等待調(diào)用此方法,使參數(shù)的類型與傳入?yún)?shù)的類型一致。