舉例如下
public class Demo<T> {
private T a;
public Demo(T p) {
a = p;
}
public void DoSomething() {
System.Console.WriteLine(a);
}
}
class DemoTest {
static void Main() {
Demo<string> d1 = new Demo<string>("There is no spoon.");
d1.DoSomething();
Demo<int> d2 = new Demo<int>(3121);
d2.DoSomething();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:generic1.cs
功能:示範 C# 程式
作者:張凱慶
時間:西元 2013 年 6 月 */Demo 後角括弧中的 T , T 亦即通用型態的識別字
public class Demo<T> {實際建立物件時,須明確宣告 T 所表示的型態
Demo<string> d1 = new Demo<string>("There is no spoon.");
d1.DoSomething();
Demo<int> d2 = new Demo<int>(3121);
d2.DoSomething();編譯執行,結果如下

這樣的識別字也可以有多個,下例示範使用兩個識別字 T 及 U
public class Demo<T, U> {
private T a;
private U b;
public Demo(T p1, U p2) {
a = p1;
b = p2;
}
public void DoSomething() {
System.Console.WriteLine("{0} {1}", a, b);
}
}
class DemoTest {
static void Main() {
Demo<string, string> d1 = new Demo<string, string>("There is no spoon.", "Free your mind.");
d1.DoSomething();
Demo<int, double> d2 = new Demo<int, double>(3121, 123.4);
d2.DoSomething();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:generic2.cs
功能:示範 C# 程式
作者:張凱慶
時間:西元 2013 年 6 月 */編譯執行,結果如下

| 中英文術語對照 | |
|---|---|
| 泛型 | generic |
| 型態 | type |
| 識別字 | identifier |
您可以繼續參考
泛型
多型
迭代器
名稱空間
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: 泛型 (C# 程式設計手冊)
沒有留言:
張貼留言