技术积累

明日复明日,明日何其多,我生待明日,万事成蹉跎。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

什么是受管(managed)?

Posted on 2005-07-03 21:42  追风逐云.NET  阅读(562)  评论(0编辑  收藏  举报
  
  "受管"的概念在.Net环境下被广泛使用,但是不同地方的含义有点差别:
  
  受管代码:
  .Net环境提供了许多核心的运行时服务, 比如异常处理和安全策略. 为了能使用这些服务, 必须要给运行时环境提供一些信息, 这种代码就是受管代码. 所有的C#, VB.NET, JScript.NET缺省都是受管的. 注意VS7 C++不是受管的! 但是编译器能够使用命令行选项(/com+)产生受管代码!
  
  受管数据:
  所有由受管代码管理的数据都是受管数据, 这些数据都通过.Net垃圾自动处理器来管理. 但是即使使用了/com+命令行选项,VS7 C++数据也不是受管的, 必须加上_gc关键字才是受管的.
  
  受管类:
  通常就是指在ME(Managed Extensions)下的C++类, 加上_gc关键字, 就是一个受管类了. 这就意味着什么呢?
  第一: 这种类的实例是由垃圾自动收集器管理的.
  第二: 除了上面一点, 还有由.Net带来的益处和弊处. 比如, 这种类可以和其它语言交互访问, 比如, ME C++可以从VB类中继承. 这就是益处. 但是受管类只能从一个基类继承, 这就是弊处.