C中的泛型是什麼意思,C 泛型的意義是什麼?

時間 2021-08-11 17:44:50

1樓:匿名使用者

泛型就是資料型別隨意。

2樓:在嘉庚園想回家的油桃

泛型是 2.0 版 c# 語言和公共語言執行庫 (clr) 中的一個新功能。泛型將型別引數的概念引入 .

net framework,型別引數使得設計如下類和方法成為可能:這些類和方法將一個或多個型別的指定推遲到客戶端**宣告並例項化該類或方法的時候。例如,通過使用泛型型別引數 t,您可以編寫其他客戶端**能夠使用的單個類,而不致引入執行時強制轉換或裝箱操作的成本或風險,如下所示:

  // declare the generic class   public class genericlist   }   class testgenericlist      static void main()      }   使用泛型型別可以最大限度地重用**、保護型別的安全以及提高效能。   泛型最常見的用途是建立集合類。   .

net framework 類庫在 system.collections.generic 名稱空間中包含幾個新的泛型集合類。

應儘可能地使用這些類來代替普通的類,如 system.collections 名稱空間中的 arraylist。   您可以建立自己的泛型介面、泛型類、泛型方法、泛型事件和泛型委託。

  可以對泛型類進行約束以訪問特定資料型別的方法。   關於泛型資料型別中使用的型別的資訊可在執行時通過反射獲取。

3樓:小白丶風

型是一種特殊的型別,可以把型別的工作推遲到客戶端**宣告並例項化類或方法的時候進行。

4樓:匿名使用者

通過引數化型別來實現在同一份**上操作多種資料型別。利用“引數化型別”將型別抽象化,從而實現靈活的複用。

5樓:北林鬱

泛型就是用於處理演算法、資料結構的一種程式設計方法。泛型的目標地採用廣泛適用和可互動性的形式來表示演算法和資料結構,以使他們能夠直接用於軟體構造。

6樓:匿名使用者

**)一、解析泛型 泛型其實主要是為了實現**的重用,那麼它是如何實現的呢?在clr2.0中,實現了專門的il指令支援泛型操作,具體編譯過程為:

(1)初次編譯,首先生成il**和後設資料,t只是作為型別佔位符,不進行泛型型別的例項化。 (2)jit編譯,將以實際型別替換il**和後設資料中的t佔位符,並將其轉換為本地**,下一次對該泛型型別的引用將使用相同的本的**。 注意:

對於值型別和引用型別引數,泛型型別例項化有所不同。 (1)型別引數為值型別,jit編譯器為不同的值型別建立不同的本地** (2)型別引數為引用型別,共享本地**的單個副本,這主要是因為引用型別變數都是指向託管堆的引用指標,對於指標完全可以使用相同的方式來操作。 二、基礎概要 1、預設值 public t data; data = default(t);值型別的預設值為0,引用型別的預設值為null。

對於結構型別,初始化為其成員相應的預設值。 2、約束 在定義泛型類時,對於能夠用於例項化型別引數的型別所作的限制。 (1)t:

new(),表示型別引數必須具有公共無參建構函式。當有多個約束存在時,new()約束置於最後。 (2)t:

class,表示型別引數必須是引用型別。

7樓:匿名使用者

泛型就是可以匹配任意型別

c#泛型的意義是什麼?

8樓:

範型的意義在於免去了型別之間互相轉換的系統開銷,和同類方法的過載,

比如,add方法你要過載兩個方法(int和double)或者更多方法,用範型只用寫一個add方法就可以完成int,double,float......等等的相加,

再如,集合的操作,沒有往往是弱型別(object),而用範型可以直接是強型別,無需轉換之間的開銷,節省了資源,

9樓:萢萢

泛型是程式設計語言的一種特性。允許程式設計師在強型別程式設計語言中編寫**時定義一些可變部分,那些部分在使用前必須作出指明。各種程式設計語言和其編譯器、執行環境對泛型的支援均不一樣。

將型別引數化以達到**複用提高軟體開發工作效率的一種資料型別。泛型類是引用型別,是堆物件,主要是引入了型別引數這個概念。

泛型的定義主要有以下兩種:

1.在程式編碼中一些包含型別引數的型別,也就是說泛型的引數只可以代表類,不能代表個別物件。(這是當今較常見的定義)

2.在程式編碼中一些包含引數的類。其引數可以代表類或物件等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的引數在真正使用泛型時都必須作出指明。

c#中泛型的作用是什麼?

10樓:自殺

泛型copy(generic)是c#語言2.0和通用語言運bai

行時(clr)的一個新特du性。泛型為.net框架引入了型別引數(zhitype parameters)的概念。

型別引數使得設計dao類和方法時,不必確定一個或多個具體引數,其的具體引數可延遲到客戶**中宣告、實現。這意味著使用泛型的型別引數t,寫一個類mylist,客戶**可以這樣呼叫:mylist, mylist或 mylist。

這避免了執行時型別轉換或裝箱操作的代價和風險

c#中什麼是泛型和泛型的集合.?

11樓:

list這種就是泛型

現在這裡只說一下我自己的理解..高手莫罵..

這裡的t可以是使用者自己定義的型別.

例如現在相要一個int泛型集合 我們只要使用list就行了使用string 泛型集合 我們只要使用list就行了其實泛型集合更重要的功能是可以存入使用者自定義的類了..

12樓:匿名使用者

所謂泛型,即通過引數化型別來實現在同一份**上操作多種資料型別,泛型程式設計是一種程式設計正規化,它利用“引數化型別”將型別抽象化,從而實現更為靈活的複用。

一般泛型比如delete

泛型集合比如dictionary

13樓:乜帥紅

泛型聽起來很高深的一個詞,但實際上它的作用很簡單,就是提高c#程式的效能。

比如在計算機中經常用到一些資料結構,如佇列,連結串列等,而其中的元素以前一般這麼定義:object a=new object();

這樣就帶來一個嚴重的問題,用object來表示元素沒有邏輯問題,但每次拆箱、封箱就佔用了大量的計算機資源,導致程式效能低下,而這部分內容恰恰一般都是程式的核心部分,如果使用object,那麼程式的表現就比較糟糕。

而使用泛型則很好的解決這個問題,本質就是在編譯階段就告訴編譯器,資料結構中元素的種類,既然編譯器知道了元素的種類,自然就避免了拆箱、封箱的操作,從而顯著提高c#程式的效能。

比如list就直接使用string物件作為list的元素,而避免使用object物件帶來的封箱、拆箱操作,從而提高程式效能。

可以自己編個小例子體驗一下在使用資料結構時的情形,自然就理解了。

c#中泛型的t和有什麼區別

14樓:匿名使用者

您所需要的**如下.

public void createdal()

C泛型的意義是什麼,C 中泛型的作用是什麼?

範型的意義在於免去了型別之間互相轉換的系統開銷,和同類方法的過載,比如,add方法你要過載兩個方法 int和double 或者更多方法,用範型只用寫一個add方法就可以完成int,double,float.等等的相加,再如,集合的操作,沒有往往是弱型別 object 而用範型可以直接是強型別,無需轉...

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...