什么是托管类型?它们是否特定于Delphi?它们是否针对Windows?

SOU*_*ser 5 delphi types managed

综述:

请查看以下知识渊博的评论.

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

我已经看到了managed types 很多stackoverflow Delphi主题中提到的术语.例如,它在主题中提到correctly initializing/finalizing.但是,当我谷歌时managed types,似乎大多数链接都与C++或.NET有关.例如,请参阅MSDN页面.有人可以帮助评论Delphi中定义的托管类型吗?鉴于Delphi for POSIX/MacOS正在诞生,是Windows特有的托管类型吗?感谢您提前付出的努力和时间!

PS:主题correctly initializing/finalizing:
在Delphi中初始化哪些变量?
delphi变量是否默认使用值初始化?
我应该如何在Delphi 7析构函数中释放一组对象?
在Delphi 2009中,我是否需要释放变体数组?

Cos*_*und 7

在上下文中Delphi,托管类型是Delphi编译器自动生成生命周期管理代码的类型.这包括:

  • 字符串
  • 打开动态数组
  • 包含其他托管类型的记录
  • 接口
  • (稍后编辑)匿名方法
  • (后来编辑)变种

因为Delphi上下文中的托管类型是根据Delphi编译器生成的内容定义的,所以它们是特定于delphi的.


在.NET世界中,开发人员不需要管理已分配内存的生命周期,因为.NET提供了一种自动执行此操作的机制:垃圾收集器.但是.NET包含了处理CLR之外的东西的能力(例如:使用不以CLR为目标的本机DLL).该代码通常称为无管理且不安全.

在.NET环境中,托管与CLR自动管理的内容有关,因此这是.NET的特定术语!

  • @Xichen Li,确切地说是一个列表:编译器确切地知道管理哪些类型以及哪些类型不是.也许Embarcadero的某个人可以告诉我们确切的清单.或者有更好的谷歌搜索技巧的人. (2认同)