C 泛型初探

2021-10-12 06:55:49 字數 2124 閱讀 7810

目錄

c# 泛型(generic) 例項

泛型(generic)的特性

泛型(generic)方法 例項

適用場景

泛型(generic)允許您延遲編寫類或方法中的程式設計元素的資料型別的規範,直到實際在程式中使用它的時候。換句話說,泛型允許您編寫乙個可以與任何資料型別一起工作的類或方法。

您可以通過資料型別的替代引數編寫類或方法的規範。當編譯器遇到類的建構函式或方法的函式呼叫時,它會生成**來處理指定的資料型別。下面這個簡單的例項將有助於您理解這個概念:

using system;

using system.collections.generic;

public t getitem(int index)

public void setitem(int index, t value)

}class tester

// 獲取值

for (int c = 0; c < 5; c++)

console.writeline();

// 宣告乙個字元陣列

mygenericarraychararray = new mygenericarray(5);

// 設定值

for (int c = 0; c < 5; c++)

// 獲取值

for (int c = 0; c < 5; c++)

console.writeline();

console.readkey();}}

}

當上面的**被編譯和執行時,它會產生下列結果:

0 5 10 15 20

a b c d e

使用泛型是一種增強程式功能的技術,具體表現在以下幾個方面:

在上面的例項中,我們已經使用了泛型類,我們可以通過型別引數宣告泛型方法。下面的程式說明了這個概念:

using system;

using system.collections.generic;

static void main(string args)

, b = ", a, b);

console.writeline("char values before calling swap:");

console.writeline("c = , d = ", c, d);

// 呼叫 swap

swap(ref a, ref b);

swap(ref c, ref d);

// 在交換之後顯示值

console.writeline("int values after calling swap:");

console.writeline("a = , b = ", a, b);

console.writeline("char values after calling swap:");

console.writeline("c = , d = ", c, d);

console.readkey();}}

}

當上面的**被編譯和執行時,它會產生下列結果:

int values before calling swap:

a = 10, b = 20

char values before calling swap:

c = i, d = v

int values after calling swap:

a = 20, b = 10

char values after calling swap:

c = v, d = i

在封裝公共元件的時候,很多時候我們的類/方法不需要關注呼叫者傳遞的實體是"什麼",這個時候就可以使用泛型。

using system;

using system.web.caching;

namespace xy.cachemanager

//插入快取

public static void set(cache cache t tentity,string cachekey)

}}

C 泛型 使用泛型List

一 泛型的優點 效能高。從前面的例子可以看出使用不需進行型別轉換,可以避免裝箱和拆箱操作,提高效能。型別安全。泛型集合對其儲存物件進行了型別約束,不是定義時宣告的型別,是無法儲存到泛型集合中的,保證了資料型別的安全。重用。使用泛型型別可以最大限度地重用 保護型別的安全以及提高效能。使用泛型 使用泛型...

C 泛型 泛型類擴充套件

泛型 更準確的使用一種以上的型別 方式 泛型允許我們宣告型別引數化的 我們可以用不同的型別進行例項化 也就是說,我們可以用 型別佔位符 型別引數 來宣告,然後在建立例項時提供真實型別 泛型不是型別,而是型別的模板 c 提供了5種泛型 類 結構 介面 委託和方法。前面四個是型別,方法是成員。一 泛型類...

C 泛型 泛型集合Dictionary

在system.collections.generic命名空間中,與arraylist相對應的泛型集合是list,與hashtable相對應的泛型集合是dictionary,其儲存資料的方式與雜湊表相似,通過鍵 值來儲存元素,並具有泛型的全部特徵,編譯時檢查型別約束,讀取時無須型別轉換。本儲存的例子...