在学习Windows Phone 8开发时,我发现它的API可以分为:1 . 托管(.NET API)2 . 托管和本机(Windows Phone运行时API)3 . 本机(Win32和COM)
我的问题是为什么.NET API被称为“托管” . 这个词是什么意思?谢谢 .
.NET称为托管,因为对象生存期由运行时环境(CLR,公共语言运行时)自动管理 .
相反,本机(和COM)代码要求开发人员管理对象生存期,方法是显式调用相应的清理调用(例如 delete , Release() ),或者使用资源管理类(例如 std::unique_ptr , _com_ptr_t ) .
delete
Release()
std::unique_ptr
_com_ptr_t
术语托管还指代由于代码继续运行而由CLR提供的附加服务,例如存储器管理(例如,提供压缩堆),安全性(例如,验证程序集的代码是安全/有效的),线程等 .
.NET基于某种类似于Java虚拟机的字节码 . 这允许在转换对象类型时进行垃圾收集和检查 .
据我所知,“托管”这个词指的是.NET提供了一个处理垃圾收集和对象转换检查的数据管理(以及更多内容) .
“托管代码”是.NET代码的同义词(只要它不与非.NET对象混合使用) .
2 回答
.NET称为托管,因为对象生存期由运行时环境(CLR,公共语言运行时)自动管理 .
相反,本机(和COM)代码要求开发人员管理对象生存期,方法是显式调用相应的清理调用(例如
delete
,Release()
),或者使用资源管理类(例如std::unique_ptr
,_com_ptr_t
) .术语托管还指代由于代码继续运行而由CLR提供的附加服务,例如存储器管理(例如,提供压缩堆),安全性(例如,验证程序集的代码是安全/有效的),线程等 .
.NET基于某种类似于Java虚拟机的字节码 . 这允许在转换对象类型时进行垃圾收集和检查 .
据我所知,“托管”这个词指的是.NET提供了一个处理垃圾收集和对象转换检查的数据管理(以及更多内容) .
“托管代码”是.NET代码的同义词(只要它不与非.NET对象混合使用) .