泛型老是看不懂啊,誰幫我解釋解釋,通俗一點哦

時間 2025-01-07 08:45:35

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號 密碼 不能進...