C#与.NET程序员面试宝典 2.1.7 面试题7:C#中的非托管代码是什么

非托管代码是.NET框架中比较重要的一个基础概念,也是面试中的常规问题,本小节将向读者解释非托管代码的基本概念。

 

【出现频率】★★★★★

 

【关键考点】

非托管代码(Unmanaged Code)

非托管代码的特点

 

【考题分析】

非托管代码(Unmanaged Code)是指直接编译成目标计算机的机器码,这些代码只能运行在编译出这些代码的计算机上,或者是其他相同处理器或者几乎一样处理器的计算机上。非托管代码不能享受公共语言运行库所提供的一些服务,例如内存管理、安全管理等。

 

如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口,通常非托管代码调用Windows SDK所提供的API来实现内存管理。非托管程序也可以通过调用COM接口来获取操作系统服务。

 

注意:C#跟Visual Studio平台的其他编程语言不一样的是,C#可以创建托管程序与非托管程序。当创建的项目选择名字以MFC,ATL或者Win32开头的项目类型,那么这个项目所产生的就是非托管程序。

 

【答案】

非托管代码(Unmanaged Code)不由CLR公共语言运行库执行,而是由操作系统直接执行的代码。非托管代码必须自己提供垃圾回收,类型检查,安全支持等等服务。

posted @ 2010-10-19 09:39  面试宝典  阅读(904)  评论(0编辑  收藏  举报