舉例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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(); } } /* 《程式語言教學誌》的範例程式 檔名:generic1.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
Demo 後角括弧中的 T , T 亦即通用型態的識別字
1 | public class Demo<T> { |
實際建立物件時,須明確宣告 T 所表示的型態
15 16 17 18 | Demo< string > d1 = new Demo< string >( "There is no spoon." ); d1.DoSomething(); Demo< int > d2 = new Demo< int >(3121); d2.DoSomething(); |
編譯執行,結果如下

這樣的識別字也可以有多個,下例示範使用兩個識別字 T 及 U
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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(); } } /* 《程式語言教學誌》的範例程式 檔名:generic2.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
編譯執行,結果如下

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