程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi2009初體驗 - 語言篇 - 體驗泛型(二)(5)

Delphi2009初體驗 - 語言篇 - 體驗泛型(二)(5)

編輯:Delphi

6、多模板類型分別約束條件

有兩個模板類型T1、T2,要使用不同的約束分別約束兩個模板類型,可以使用以下方法:

1type
2  TGenericsClass<T: class; T1: TList> = class // 注意在此進行約束,用“;”將兩個模板類型分開進行分別約束
3  private
4  end;
7、嵌套約束條件

Delphi2009的泛型約束條件對嵌套約束條件處理的很好,如:

1TFelix<T> = class
2  public
3
4  end;
5
6  TGenericsClass<T: class; T1: TFelix<T>> = class // 注意在此進行約束,用“;”將兩個模板類型分開進行分別約束
7  private
8  end;

十、關於特化和偏特化

謝謝網友“裝配腦袋”的提醒,我試了很多方法,都沒有跡象表明D2009支持C++中模板的特化和偏特化,或者D2009用其他形式的語法表示特化與偏特化,導致我沒有試驗出來。

十一、總結

總體上來說,D2009從泛型的角度出發,做得已經非常不錯了,已經非常接近C#。甚至,D2009還提供類似於C#的關鍵字“default”,來獲取泛型類型T的默認值(值類型置0,引用類型為空指針)。

在接下來的章節裡,我會向大家介紹D2009的其他新體驗,如:匿名函數和反射(比RTTI更強大)的支持。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved