1樓:
範型的意義在於免去了型別之間互相轉換的系統開銷,和同類方法的過載,
比如,add方法你要過載兩個方法(int和double)或者更多方法,用範型只用寫一個add方法就可以完成int,double,float......等等的相加,
再如,集合的操作,沒有往往是弱型別(object),而用範型可以直接是強型別,無需轉換之間的開銷,節省了資源,
2樓:萢萢
泛型是程式設計語言的一種特性。允許程式設計師在強型別程式設計語言中編寫**時定義一些可變部分,那些部分在使用前必須作出指明。各種程式設計語言和其編譯器、執行環境對泛型的支援均不一樣。
將型別引數化以達到**複用提高軟體開發工作效率的一種資料型別。泛型類是引用型別,是堆物件,主要是引入了型別引數這個概念。
泛型的定義主要有以下兩種:
1.在程式編碼中一些包含型別引數的型別,也就是說泛型的引數只可以代表類,不能代表個別物件。(這是當今較常見的定義)
2.在程式編碼中一些包含引數的類。其引數可以代表類或物件等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的引數在真正使用泛型時都必須作出指明。
c#中泛型的作用是什麼?
3樓:自殺
泛型copy(generic)是c#語言2.0和通用語言運bai
行時(clr)的一個新特du性。泛型為.net框架引入了型別引數(zhitype parameters)的概念。
型別引數使得設計dao類和方法時,不必確定一個或多個具體引數,其的具體引數可延遲到客戶**中宣告、實現。這意味著使用泛型的型別引數t,寫一個類mylist,客戶**可以這樣呼叫:mylist, mylist或 mylist。
這避免了執行時型別轉換或裝箱操作的代價和風險
c#中泛型最大的優勢是什麼?常用在哪些方面(具體的例子)?
4樓:壤駟興文韶起
泛型就是一個指定了資料型別的一個容器。
它可以根據實際情況去自動的分配容量。
且取資料的時候,無需拆箱操作、
簡單的舉個例子。
有一個父類person,student和teacher類均繼承之person。
現有一個集合list,那麼這個集合就可以存放person、student
、teacher的例項。
用person去迴圈陣列元素時。不需要型別轉換的。
如果樓主還有什麼疑問,**309
1404
00謝謝
什麼是泛型?他有什麼優點?
5樓:drar_迪麗熱巴
泛型。即通過引數化型別來實現在同一份**上操作多種資料型別。泛型是在c#2.
0引入的。泛型(genericity)的字面意思是指具有在多種資料型別上皆可操作的含意,與模板有些相似。
優點:泛型類和泛型方法同時具備可重用性、型別安全和效率,這是非泛型類和非泛型方法無法具備的。泛型通常用與集合以及作用於集合的方法一起使用。
泛型是c#2.0的一個新增加的特性,它為使用c#語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能得到提高。
泛型是程式設計語言的一種特性。允許程式設計師在強型別程式設計語言中編寫**時定義一些可變部分,那些部分在使用前必須作出指明。各種程式設計語言和其編譯器、執行環境對泛型的支援均不一樣。
6樓:匿名使用者
更加安全,避免裝箱拆箱操作
c# 泛型具體有什麼好處?在什麼地方能得以體現?
7樓:翼帆
關於object型別:
1.object型別可以來引用任何型別的例項;
2.object型別可以儲存任何型別的值;
3.可以定義object型別的引數;
4.可以把object作為返回型別。
但是--這樣做有很大的問題
1.會因為程式設計師沒有記住使用的型別而出錯,造成型別不相容;
2.值型別和引用型別的互化即裝箱拆箱使系統效能下降。
c#2.0提出的泛型就是避免強制型別轉換,減少裝箱拆箱提高效能,減少錯誤。
system.collections.generic名稱空間提供許多集合類和介面的泛型版本。
定義:public class genericlist
的t是型別引數,起佔位符的作用,編譯時被真正型別取代。
使用泛型:
genericlistlist1 = new genericlist();
genericlistlist2 = new genericlist();
genericlist《類名》 list3 = new genericlist《類名》();
genericlist《類名> list4= new genericlist《類名>();
以list1為例編譯器生成以下的方法:
public void add(int input)
public int add()
有多個型別引數的泛型類:
public class 類名
泛型約束:
確保泛型類使用的引數是提供特定方法的型別。
public class genericlistwhere t : iemployee
假如iemployee介面包含a方法,編譯器會驗證用於替換t的型別一定要實現iemployee介面。
泛型方法:允許採取定義泛型類時採用的方式
//定義泛型方法
static void swap(ref t lhs, ref t rhs)
//使用泛型方法
public static void testswap()
有泛型類,泛型介面,泛型方法,泛型委託
8樓:匿名使用者
泛型是具有佔位符(型別引數)的類、結構、介面和方法,這些佔位符是類、結構、介面和方法所儲存或使用的一個或多個型別的佔位符。泛型集合類可以將型別引數用作它所儲存的物件的型別的佔位符;型別引數作為其欄位的型別及其方法的引數型別出現。泛型方法可以將其型別引數用作其返回值的型別或者其某個形參的型別。
由於.net framework 泛型的型別引數之實際型別在執行時均不會被消除 泛型約束
,執行速度會因為型別轉換的次數減少而加快。 另外,使用 gettype 方法可於程式執行時得知泛型及其型別引數的實際型別,更可以運用反射程式設計。 允許對個別泛型的型別引數進行約束,包括以下幾種形式(假設 c是泛型的型別引數, 是一般類、泛類,或是泛型的型別引數):
t 是一個類。t 是一個值型別。t 具有無引數的公有建構方法。
t 實現介面 i 。t 是 c ,或繼承自 c 。
9樓:觀可樂舞
好處是不像陣列需要一開始就定義長度,泛型能自動增長。而且方便索引,排列等。
C中的泛型是什麼意思,C 泛型的意義是什麼?
泛型就是資料型別隨意。 在嘉庚園想回家的油桃 泛型是 2.0 版 c 語言和公共語言執行庫 clr 中的一個新功能。泛型將型別引數的概念引入 net framework,型別引數使得設計如下類和方法成為可能 這些類和方法將一個或多個型別的指定推遲到客戶端 宣告並例項化該類或方法的時候。例如,通過使用...
c泛型有什麼作用,C 泛型的意義是什麼?
比如泛型容器可以儲存不同型別的元素物件 c 泛型的意義是什麼? 範型的意義在於免去了型別之間互相轉換的系統開銷,和同類方法的過載,比如,add方法你要過載兩個方法 int和double 或者更多方法,用範型只用寫一個add方法就可以完成int,double,float.等等的相加,再如,集合的操作,...
c泛型集合的遍歷,泛型集合與非泛型集合的異同?
有三種很簡單,給你舉個例子 1 先宣告乙個dictoinary泛型集合 建立乙個student類的物件student stu new student 在這個類中 有乙個name屬性 dictionarystudents new dictionary students.add stu 2 開始遍歷 1...