C 泛型的簡單理解

2021-10-25 03:29:11 字數 1866 閱讀 1079

泛型和繼承是提高程式可重用性的兩**寶。

泛型的主要思想就是將演算法從資料結構中抽象出來,使得預定義的操作能夠作用於不同的資料型別,從而簡化整個程式設計模型。

**泛型(generic)**是具有佔位符(型別引數)的類、結構、介面和方法,它與普通類的區別是多了乙個或多個表示類的佔位符,這些佔位符用尖括號括起來。

從舉乙個簡單的例子說起吧!

namespace mydemo

,i2= "

, i1, i2)

;double d1 =

5.8, d2 =

10.6

; cymath<

double

>

.swap

(ref d1,

ref d2)

; console.

writeline

("i1 = ,i2= "

, d1, d2)

; console.

readline()

;}}public

class

cymath

}}

上述示例描述了兩個相同型別資料的交換。

上面定義的cymath就是乙個泛型類,佔位符「t」稱為型別引數,用於指代抽象資料型別。在該類的**中,並不關心t究竟是那種型別。而在使用時,型別引數t可以被不同的具體型別所替代。可見泛型類是對一組普通類的抽象,它能夠給程式帶來較好的靈活性。

system.collections.generic命名空間自帶泛型類,如list,dictionary等

接著我們來結合例項來說明泛型類的定義和使用方法。

public

tgetitem

(int index)

public

void

setitem

(int index,

tvalue)}

class

tester

// 獲取值

for(

int c =

0; c <

5; c++

) console.

writeline()

;// 宣告乙個字元陣列

mygenericarray<

char

> chararray =

newmygenericarray

<

char

>(5

);// 設定值

for(

int c =

0; c <

5; c++

)// 獲取值

for(

int c =

0; c <

5; c++

) console.

writeline()

; console.

readkey()

;}}}

從上例中,可以看出,泛型類同樣可以擁有各種成員,包括靜態和非靜態的字段、方法、建構函式、索引函式等。

泛型類的使用過程分為3個步驟:1、定義 2、建立例項 3、賦值或操作。

1、定義

建立自定義泛型類,與一般類相似,只不過多了型別引數t。如:

public class generic

public delegate bool predicate(t item);

public struct nullable where t : struct

2、在型別引數描述性名稱前新增字首 「t」。

public inte***ce isessionchannel

}泛型概述:

泛型的簡單理解

舉個簡單的例子 對於集合類list,你知道可以往裡add object型的物件,也就是任何物件。但在未知環境裡,你只允許往裡add string型的物件,或者你需要在不轉型的情況下直接往出拿裡面的物件,那麼就可以用泛型。如下 list list1 new arraylist 此時可以list.add...

理解C 泛型

在c 2.0中引入了泛型,泛型的出現解決了編碼中的很多問題。相信大家一定經常用到 system.collections.generic 命名空間中的泛型集合類 generic 就是泛型的意思 在c 1.0中,我們還在使用 system.collections 命名空間中的非泛型集合類,那麼看看我們在...

泛型的理解

泛型是編譯器層面上的而不是虛擬機器上的,虛擬機器上不存在泛型.x.可以使用泛型的有 類,介面和方法.泛型方法可以直接定義在普通類中 方法的如下 public t gett t t public static extends abc t gett t t 是必須存在的,可以限定返回值和引數tx.泛型在...