Manage Code 托管代码
来源:互联网 发布:学校打铃软件 编辑:程序博客网 时间:2024/05/02 00:43
什么是托管代码
托管代码是在.NET Framework中常见的术语,究竟什么是托管代码呢?
简而言之,托管代码就是运行过程交由运行时(runtime)管理的代码。
而Runtime是Common Language Runtime (CLR、公共语言运行时),目前CLR有三个实现版本(.NET Framework、.NET Core、Mono),其中.NET Core Framework是参考.NET Framework重新开发的.NET实现,Mono是.NET Framework的一个开源的、跨平台的实现,可以参考.NET Core与.NET Framework、Mono的关系了解几个实现的关系。
CLR负责把托管代码的编译为目标平台的机器码并执行。除此之外,CLR提供内存自动管理、安全边界、类型安全等等重要的服务。
相反,如果运行C/C++代码,也就是我们所说的非托管代码,程序员需要负责差不多所有的事情,从内存管理到安全层面的考虑等,对于程序员来说是一个不小的负担。
托管代码可用任意一种.NET平台支持的高级语言编写,例如C#、VB.NET、F#等。托管代码不会直接编译为机器码,而是编译成Intermediate Language中间语言,CLR再编译中间语言为机器码来执行。需要提的一点是,C++是个例外,因为C++也可以直接编译为非托管的的二进制执行包直接在Windows上运行。
中间语言
Intermediate Language(简称IL)中间语言是什么?
IL是专门用于编译使用例如C#、VB.NET这些高层次的编程语言编写的代码的产品。IL独立于上述这些编程语言,并且运行于CLR上层。
IL编译之后并不能立即运行,需要编译为机器代码才能运行,这就需要JIT(Just-In-Time)编译器把IL代码编译为能在CPU上运行的机器代码 。
与非托管代码互操作
CLR允许托管代码越过托管与非托管的边界执行。有许多这样的代码,甚至基础类库中也有这个的代码。这样的特性或者说能力称为互操作性。
有了互操作支持,我们可以执行非托管代码,但是我们必须注意,一旦这样做了,程序的控制权就交由了非托管代码。
- Manage Code 托管代码
- 托管代码 managed code
- 托管代码 (managed code)
- Code Manage
- google code svn代码托管
- 本机代码(native code)和托管代码 (managed code)
- Google code上利用SVN托管代码
- 体验了一下CODE代码托管平台
- git代码托管 code.csdn.net
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- 如何调试托管代码(managed code)和非托管代码(native code)混合的项目
- PLC基本使用
- 数据的表示和存储模式,数据类型的变迁
- 删除排序链表中的重复元素
- 实现Runnable,轻松实现多线程间的资源共享
- win7命令行常用命令
- Manage Code 托管代码
- matlab simulink 使用总结
- 简单java类
- 《leetCode》:Number of Islands
- 旋转链表
- spring security+mybatis+springMVC构建一个简单的项目
- poj之旅——3045
- 【工具】UML工具
- mysql小笔记