C# 快速導覽 - 泛型

泛型 (generic) 是一種定義通用型態 (type) 的程式設計,這是用另定識別字 (identifier) 的方式,該識別字可以當作各種型態。



舉例如下
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 後角括弧中的 TT 亦即通用型態的識別字
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();


編譯執行,結果如下



這樣的識別字也可以有多個,下例示範使用兩個識別字 TU
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# 程式設計手冊)

沒有留言: