程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TList,TObjectList 使用——資源釋放

TList,TObjectList 使用——資源釋放

編輯:Delphi

TOjectList = Class (Tlist);

TOjectList繼承Tlist,從名字上看就可以知道它是專門為對象列表制作的,那麼他到底豐富了那些功能呢?

首先是 TObject 作為對象可以方便使用,無需指針強制。

豐富了 Notify 針對當前狀態處理,比如如果是刪除就將該點的引用一並清理掉;

 procedure TObjectList.Notify(Ptr: Pointer; Action: TListNotification);
      begin
        if (Action = lnDeleted) and OwnsObjects then
          TObject(Ptr).Free;
       inherited Notify(Ptr, Action);
      end;

在 Tlist 中,有 Clear(),將呼叫 SetCount,SetCapacity;即刪除所有。

procedure TList.Clear();
     begin
        SetCount(0);
        SetCapacity(0);
     end;

當該對象銷毀是,也會自動調用Clear() 清除所有。

destructor TList.Destroy;
      begin
         Clear();
      end;

總結:如果有一個對象需要用到列表,最好從 TOjectList 開始繼承,對資源釋放有完善的處理機制。

如果從 Tlist 繼承也必須實現 Notify() ,方便資源釋放,減少麻煩。

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