明辉站/技术开发/内容

什么是受管(managed)?

技术开发2023-08-06 阅读
[摘要]"受管"的概念在.Net环境下被广泛使用,但是不同地方的含义有点差别: 受管代码: .Net环境提供了许多核心的运行时服务, 比如异常处理和安全策略. 为了能使用这些服务, 必须要给运行时环境提供一些信息, 这种代码就是受管代码. 所有的C#, VB.NET, JScript....
"受管"的概念在.Net环境下被广泛使用,但是不同地方的含义有点差别:

受管代码:
.Net环境提供了许多核心的运行时服务, 比如异常处理和安全策略. 为了能使用这些服务, 必须要给运行时环境提供一些信息, 这种代码就是受管代码. 所有的C#, VB.NET, JScript.NET缺省都是受管的. 注意VS7 C++不是受管的! 但是编译器能够使用命令行选项(/com+)产生受管代码!

受管数据:
所有由受管代码管理的数据都是受管数据, 这些数据都通过.Net垃圾自动处理器来管理. 但是即使使用了/com+命令行选项,VS7 C++数据也不是受管的, 必须加上_gc关键字才是受管的.

受管类:
通常就是指在ME(Managed Extensions)下的C++类, 加上_gc关键字, 就是一个受管类了. 这就意味着什么呢?
第一: 这种类的实例是由垃圾自动收集器管理的.
第二: 除了上面一点, 还有由.Net带来的益处和弊处. 比如, 这种类可以和其它语言交互访问, 比如, ME C++可以从VB类中继承. 这就是益处. 但是受管类只能从一个基类继承, 这就是弊处.


……

相关阅读