1樓:網友
using system;
簡單的泛型例子,泛型方法示例。
namespace fanxin
class program
static void main(string args)int col = new int
int b =6;
呼叫泛型方法。
b));string c"))
char,d'))
public class fan
非泛型類。public static int find(t items,t item)
泛型方法,如果查詢到資料則返回位置,否則返回-1for(int index=0;index<;index++)if (items[index].equals(item))return -1;
2樓:可可小車迷
net裡面的泛型,主要的好處,我理解有如下兩個1 容器類。
2 定義演算法模板。
1.容器類,在例項化泛型容器的時候,已經知道里面裝的物件的型別,從容器中取出的時候,不需要做型別轉化。
2.定義演算法,同樣的演算法,可以採用不同的型別來運算。
什麼是泛型
3樓:我愛學習
泛型。即通過引數化型別來實現在同乙份**上操作多種資料型別。泛型是在c#引入的。
泛型(genericity)的字面意思是指具有在多種資料型別上皆可操作的含意,與模板有些相似。
泛型是程式設計語言的一種特性。允許程式設計師在強型別程式設計語言中編寫**時定義一些可變部分,那些部分在使用前必須作出指明。各種程式設計語言和其編譯器、執行環境對泛型的支援均不一樣。
優點:泛型方法可以出現在泛型或非泛型型別上。需要注意的是,並不是只要方法屬於泛型型別,或者甚至是方法的形參的型別是封閉型別的泛型引數,就可以說方法是泛型方法。
只有當方法具有它自己的型別引數列表時,才能稱其為泛型方法。在下面的**中,只有方法 g 是泛型方法。
4樓:小離下
1 : 非泛型類容器來說,該容器的元素型別是 object ,使用方便,無須指定具體的元素型別。但是這種使用上的方便帶來了慘重的效能上的損失,因為,我們每次插入乙個元素就要經過一次 「 裝箱 」 操作,每次訪問乙個元素就要經過一次 「 拆箱 」 操作。
arraylist , hashtable , queue , stack , sortedlist , collectionbase , readonlycollectionbase 。
2 : 泛型 」 容器就不一樣了,這種型別的容器和 c++ 裡的容器 ( 比如 vector 、 map 、 list 等 ) 一樣,在使用的時候都要指定元素型別,並且在 「 編譯階段 」 完成型別制定,而且也避免了 「 裝箱、拆箱、型別轉換 」 等無謂的效能損失。
5樓:網友
這個就別管**了,直接從語義上講。
型」--就是指型別。
而「泛」--相對寬泛。比如泛太平洋敵區。也就說不是那麼嚴格意義上的東西。
所以兩個字和起來就是「不那麼嚴格型別定義」
我們知道c#是強型別語言。每個操作都有嚴格的型別規定。但是東西太嚴格了,難免教條和僵硬。所以在net2 就引入了泛型。
為啥要引入泛型?道理很簡單,因為我們要複用一些抽象邏輯。oo雖然有繼承,多型,過載,甚至還有介面,但是所有操作都必須在同乙個譜系裡面。
如果是要複用不同體系的邏輯,非泛型就顯得死板很多了。
這個我可以舉個列子,「排序」
排序是乙個可複用的邏輯。我們在c#裡可以用排序,也可以用linq 的orderby
時候 就是乙個非泛型的排序,用他排序就要求列表必須處於具有可排序介面這個譜系下的物件,假設物件不在這個譜系下,你必須臨時擴充套件乙個帶有可排序介面的比較物件出來,這方法才能正常運作。
而後出的 則是乙個泛型排序方法。用這個方法排序,並不要求物件必須具有那個排序介面。int可以排序,string可以排序,人可以比較身高也可比較美醜。
6樓:網友
簡單地說,泛型是種類,即泛型類。
泛型類定義過程中並沒有指定其中成員的具體型別,而是用t來表示。
在泛型類例項化時,用具體的型別來代替t即可,就相當於當初定義了乙個成員為這個具體型別的類。
個人理解,就是c++中的模板,定義乙個類相當於定義了多個類,因為可以用不同的型別來代替t。並且可以實現強型別化。
7樓:彈琴蘭陵
泛型剛開始理解時,就是指定了特定的某個型別,其他型別就不允許使用,把基本格式記住就可以瞭如:list list = new arraylist
裡邊的就是對list指定了泛型,非泛型就不用說了!
8樓:網友
泛型是公共語言執行時和程式語言提供的一種機制,它支援另外1種形式的**重用,也就是演算法重用。
泛型包含泛型類,泛型介面,泛型委託,泛型方法,並非只包含簡單的泛型類。在c#中,其他例如,屬性,索引器,事件,操作符方法,構造器本身不能有型別引數t.
t(型別引數),它的目的在於指明它操作的是乙個未指定的資料型別,在源**中能夠使用資料型別的地方都可以使用它。
泛型和非泛型的區別在於,泛型型別擁有型別的安全性,更加清晰的**和更優異的效能。
其次,泛型類具有比非泛型更好的物件模型,例如,virtual方法的數量明顯減少,從而獲得更好的效能。
泛型是什麼?
9樓:匿名使用者
舉個來例子arraylist,如果不指定自泛型,可以往裡放baiobject型的變數,du
即任何zhi型別的變數,然後你取的時候需。
dao要強制型別轉換,假如,你的列表裡本來是準備全部放bird型別的,不過一不小心存進去乙個tiger型別,而你也不知道,當取資料強制型別轉換的時候就會拋異常了用泛型,arraylist的話,這個列表存的時候就只能存入bird型別了,你tiger型別是怎麼也存不進去的,而且取的時候也不需要強制型別轉換,取出來就是bird型的了。
10樓:許詩文
泛型的定義主要有以下兩種:
1.在程式編碼中一些包含型別引數的型別,也就是說泛型的內引數只可以容代表類,不能代表個別物件。(這是當今較常見的定義)2.
在程式編碼中一些包含引數的類。其引數可以代表類或物件等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的引數在真正使用泛型時都必須作出指明。
一些強型別程式語言支援泛型,其主要目的是加強型別安全及減少類轉換的次數,但一些支援泛型的程式語言只能達到部分目的。
求解釋個笑話,看不懂,求乙個笑話的解釋,看不懂啊。。。
萬彩力靜秀 這個其實是要根據最近的實事來說的,有人好心幫助他人,卻被訛,雖說是乙個小盆友,到是卻也是一類人的縮影,在中國,千千萬萬個人都這樣!笑話,也其實在警告那些人,學會感恩,而不是去恩將仇報 冼花幸荷 哈哈,前段時間,有人在馬路上攙扶摔倒的老太太,被訛詐10幾萬,說被他撞倒的,還有乙個人也是這樣...
可以幫我解釋下麼?我感覺這個遞迴看不懂
int reverse char s,int i 相當於用遞迴的方式遍歷這個字串 並且把每個字元都快取在棧區內 char c s i 直到字串結尾的時候開始逐層出棧 出棧的時候 k相當於記錄了棧頂的高度 第一次出棧時k 0 字串快取為f 剛好是s 0 f 然後逐層出棧 到棧底 這個字串也就被重新賦值...
這些英文看不懂,解釋一下吧,這些英文看不懂,解釋一下吧
圭木 email or origin id 電子郵箱或使用者idpassword 密碼 log in 登入 remember me 記住我 log in as invisible 隱身登入create an account 註冊賬號 優鉫 origin身份驗證 郵件號或者origin號 密碼 不能進...