泛型和繼承是提高程式可重用性的兩**寶。
泛型的主要思想就是將演算法從資料結構中抽象出來,使得預定義的操作能夠作用於不同的資料型別,從而簡化整個程式設計模型。
**泛型(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.泛型在...