CLR 和 CLI - 有什么区别?
-
20-08-2019 - |
题
我想知道 CLR 和 CLI 之间到底有什么区别?从我到目前为止所读到的内容来看,似乎表明 CLI 是 CLR 的子集。但 CLR 中的所有内容不是都是强制性的吗?创建 CLI 时,CLR 到底可以省去哪些内容?
其他提示
CLR的环境中执行其中的一个。网应用程序托管安全/运行。
你可以看到它。净私人操作系统,发起和荷载之前。网应用启动。
CLR照顾某些基本要求的任何。净的应用程序,否则将需要大量的蓄意代码被写入了实施;要求是全面性的和必要的任何种类的应用程序运行良好的、高效和安全的方式[例如处理内存分配和释放时并不要求,避免晃来晃去的指针,避免类型铸错误等。]
CLI另一方面是一个规定的指导方针,说明如何实施一个应用程序执行环境和自然产生的应用程序的代码,允许多个高级别的语言被使用在不同的计算机平台没有被改写为特定的体系结构。
CLI是由微软开发和标准化,通过异和通信机制详解.
CLR是实际执行情况的CLI的VES[虚拟执行系统]段和形式的一个核心组成部分的MS.NET 平台
在一个通俗的语言,CLI是一个食谱的话CLR是美食:-)
在CLR(公共语言运行库)是微软的落实VES的(虚拟执行系统)。与CTS(通用类型系统),则CLS(通用语言规范)和元数据规范沿VES是CLI(公共语言基础结构)规范的一部分。
在VES是必须以加载和执行CIL(通用中间语言)模块(DLL和EXE)实现标准化的虚拟机规范。甲VES实现还提供运行时服务,例如垃圾收集和安全性。
CLR是.NET运行环境中,所有类型的.NET应用程序run.For例如,当你用C#或点NET堆栈的编译器编译,并将其转换成管理模块另一种语言编写代码。一个管理模块是IL(中间语言)和metadata.Above一切,要记住的重要一点是,每当您编译源代码,编译器将其转换为托管模块。为了澄清,这不是一个机器代码的处理器将execute.In事实上,IL靠近组件language.Similarly中间语言,它也是有名面向对象的机器语言。
检查关于更详细的说明这篇文章:
http://alevryustemov.com/programming/common-language-runtime/一>
CLR是其中CLI,CTS,CLS工作在整合也incluse垃圾收集,存储管理,安全,本机代码intemediate语言的完整的环境... 的 CLI 强>是可执行代码的格式的规范,和运行时 环境,可以执行该代码。