線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:954
推到 Plurk!
推到 Facebook!

請問 物件用 TObject.free 釋放會不會有 放不乾淨的問題?

尚未結案
sams
一般會員


發表:18
回覆:20
積分:12
註冊:2003-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-19 17:30:52 IP:220.135.xxx.xxx 未訂閱
var
  list: TList;
  obj: TObject;    begin
  list:= TList.Create;
  list.Capacity:= 10000;
  obj:= TObject( list);
  obj.Free; //原來是 list.free;
end;
 
請問 上例 list.free 改用 obj.free 釋放會不會有 放不乾淨的問題? 如果可以的話, 是不是每一種物件都可以轉型成 TObject 再釋放? 會不會出錯? 有人有經驗嗎? 感謝.. 發表人 - sams 於 2004/07/19 17:39:45
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-19 19:31:20 IP:203.204.xxx.xxx 未訂閱
引言:
var
  list: TList;
  obj: TObject;    begin
  list:= TList.Create;
  list.Capacity:= 10000;
  obj:= TObject( list);
  obj.Free; //原來是 list.free;
end;
 
請問 上例 list.free 改用 obj.free 釋放會不會有 放不乾淨的問題? 如果可以的話, 是不是每一種物件都可以轉型成 TObject 再釋放? 會不會出錯? 有人有經驗嗎?
sams 你好 所有的物件皆可以轉型為TObject再予以釋放,因為FreeAndNil(Var Obj);就是這樣做的呀! 至於會不會釋放不乾淨?乾不乾淨不是轉型的問題,而是該物件類別的程序有沒寫好的問題,如果程式沒寫好,轉不轉型都一樣釋放不乾淨,因為都是執行同樣的程式碼。 _______________________________________ 深藍的魚,祝您好運..........連.連
sams
一般會員


發表:18
回覆:20
積分:12
註冊:2003-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-20 08:03:05 IP:61.64.xxx.xxx 未訂閱
謝謝版主這麼詳細的回應..
系統時間:2024-05-17 18:08:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!