W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
泛型類型定義包含占位符類型的模板。
泛型可以提高類型安全性,減少鑄件和拳擊。
泛型類型聲明可以由泛型類型的消費(fèi)者填充的類型參數(shù)。
這里是一個(gè)泛型類型Stack <T>,用于堆棧類型T的實(shí)例。
Stack<T>聲明單個(gè)類型參數(shù)T:
public class Stack<T> { int position; T[] data = new T[100]; public void Push (T obj) { data[position++] = obj; } public T Pop() { return data[--position]; } }
我們可以使用Stack <T>如下:
Stack<int> stack = new Stack<int>(); stack.Push(5); stack.Push(10); int x = stack.Pop(); // x is 10 int y = stack.Pop(); // y is 5
Stack< int>
用類型參數(shù)int填充類型參數(shù)T.
Stack<>
是一個(gè)開放類型,而Stack <int>是一個(gè)閉合類型。
泛型方法在方法的簽名中聲明類型參數(shù)。
使用泛型方法,許多基本算法只能以通用方式實(shí)現(xiàn)。
這里是一個(gè)泛型的方法交換任何類型T的兩個(gè)變量的內(nèi)容:
static void Swap<T> (ref T a, ref T b) { T temp = a; a = b; b = temp; }
Swap<T>
可以使用如下:
int x = 5; int y = 10; Swap (ref x, ref y);
沒有必要為通用方法提供類型參數(shù)。
如果存在歧義,可以使用類型參數(shù)調(diào)用泛型方法,如下所示:
Swap<int> (ref x, ref y);
只有方法和類型可以引入類型參數(shù)。
屬性,索引器,事件,字段,構(gòu)造函數(shù),運(yùn)算符等不能聲明類型參數(shù)。
以下代碼顯示了如何編寫返回通用項(xiàng)的索引器:
public T this [int index] { get { return data [index]; } }
構(gòu)造函數(shù)可以接受現(xiàn)有的類型參數(shù),但不能引入它們。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: