舉例如下
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# 程式設計手冊)
沒有留言:
張貼留言