2011-03-18 22 views
5

總結:什麼是託管類型?他們是否特定於Delphi?它們是否特定於Windows?

請檢查以下知識淵博的評論。

============================================== ================

我已經看到在相當多的幾個stackoverflow德爾福主題中提到managed types的術語。例如,在correctly initializing/finalizing的主題中提到了它。但是,當我google,似乎大多數鏈接都與C++或.NET有關。例如,請參閱MSDN page。有人可以幫助評論在Delphi中定義的託管類型嗎?鑑於用於POSIX/MacOS的Delphi正在誕生,是否特定於Windows的託管類型?感謝您的努力和時間提前!

PS:的correctly initializing/finalizing主題:
Which variables are initialized when in Delphi?
Are delphi variables initialized with a value by default?
How should I free an array of objects in a Delphi 7 destructor?
In Delphi 2009 do I need to free variant arrays?

回答

7

Delphi的上下文中,託管類型是Delphi編譯器自動生成生命週期管理代碼的那些類型。這包括:

  • 字符串
  • 打開 動態數組含有其他託管類型
  • 接口
  • (稍後編輯)匿名方法
  • 記錄
  • (稍後編輯)變體

由於託管類型在Delphi上下文是根據Delphi編譯器生成的內容定義的,它們是delphi特有的。


在.NET世界的開發者不需要管理分配的內存的生命週期,因爲.NET提供了這樣一種自動機制:垃圾回收器。但是.NET包含了處理CLR之外的事情的能力(例如:使用不針對CLR的本地DLL)。該代碼通常被稱爲unamanged和不安全的。

在.NET管理的上下文中涉及CLR自動管理的內容,所以這就是.NET特定術語!

+0

@Cosmin:謝謝你的幫助!你提到了四種託管類型。你的名單是獨家?我的意思是,你的列表是德爾福託管類型的列表嗎? (並感謝您對.NET託管類型的有用評論。) – SOUser 2011-03-18 11:56:45

+1

不,它不是排他性的。我用'this includes'介紹了這個列表。現在我想不出任何其他,但我不能保證這是完整的清單。 – 2011-03-18 11:59:24

+0

@Cosmin:我明白了!那麼我想這裏並不存在Delphi實際的託管類型的完整列表? – SOUser 2011-03-18 12:02:20

2

Barry Kelly's answer到相關型號線程。 由於託管類型是一種語言功能,因此Mac OS等應該不會有重大變化。

+0

謝謝你的幫助!巴里提到了一個託管類型的例子列表。儘管如此,這個列表是排他性的嗎? – SOUser 2011-03-18 11:55:36

+3

Barry寫道這個列表可能很全面,但它缺少後來添加的匿名方法。 – 2011-03-18 12:28:25

+0

@David:感謝您的評論! – SOUser 2011-03-18 12:42:03

相關問題