什么是什么...

来源:互联网 发布:程序员周报怎么写 编辑:程序博客网 时间:2024/04/20 11:39

问:什么是非托管代码?[http://www.w3sky.com/2462.html]

答:非托管代码也叫做本机代码,是不针对运行时的代码。
 Visual studio C++ 中的代码默认即是非托管代码。

问:什么是托管代码?[http://www.w3sky.com/2461.html]

答:针对运行时的代码。

Net环境提供了许多核心的运行(RUNTIME)服务,比如异常处理和安全策略。为了能使用这些服务,必须要给运行环境提供一些信息代码(元数据),这种代码就是托管代码。所有的C#、VB.NET、JScript.NET默认时都是托管的,但Visual C++默认时不是托管的,必须在编译器中使用命令行选项(/CLR)才能产生托管代码。

问:什么是托管类? [http://www.w3sky.com/2464.html]

答:Visual C++数据在默认情况下是非托管数据,但是在使用C++的托管扩展时,可以使用“__gc”关键字将类标记为托管类。就像该名称所显示的那样,它表示类实例的内存由垃圾回收器管理。另外,一个托管类也完全可以成为 .NET 框架的成员,由此可以带来的好处是,它可以与其他语言编写的类正确地进行相互操作,如托管的C++类可以从Visual Basic类继承等。但同时也有一些限制,如托管类只能从一个基类继承等。需要说明的是,在托管C++应用程序中既可使用托管类也可以使用非托管类。这里的非托管类不是指标准C++类,而是使用托管C++语言中的__nogc关键字的类。