各位解释一下,我觉得CLR是编译IL代码的,而运行库是管理内容,他们之间有什么联系,又有什么关系呢?

解决方案 »

  1.   

    公共语言运行库 == Common Language Runtime == CLR
    同一个概念
      

  2.   

    CLR就是运行库,为了能帮助楼主更好的理解这些概念,以下列出几个:
    1 什么是 CLR?
    CLR = Common Language Runtime—通用语言运行库。CLR 是一组标准资源集合,无论编程语言是什么,所有 (理论上) .NET 程序都能从中获益。Robert Schmidt (Microsoft) 在他的 MSDN PDC# 文章 中列出了以下 CLR 资源: 面向对象的编程模型 (继承、多态、异常处理、垃圾收集) 
    安全模型 
    类型系统 
    所有的 .NET 基础类 
    许多 .NET 框架类 
    开发、调试和测评工具 
    运行和代码管理 
    IL-机器语言 转换器和优化器 这些的含义是,在 .NET 世界里,不同的编程语言将在能力上比过去任何时候都更平等,虽然显然不是所有语言都支持所有 CLR 服务。  2 什么是 CTS?
    CTS = Common Type System—通用类型系统。它是指 .NET 运行库所理解、并且随后 .NET 应用程序可以使用的一系列类型。然而,注意不是所有的 .NET 语言都将支持 CTS 中的所有类型。CTS 是 CLS 的超集。  3 什么是 CLS?
    CLS = Common Language Specification—通用语言规范。它是预计所有 .NET 语言都支持的一个 CTS 的子集。这一思想是让使用 CLS-相容类型的任何程序和以任何语言编写的 .NET 程序可以互相操作。 理论上它能允许在不同的 .NET 语言之间有紧密的互操作性—例如允许从一个 VB 类里继承一个 C# 类。  4 什么是 IL?
    IL = Intermediate Language—中间语言。又称为 MSIL。所有 .NET 源代码 (使用任何语言) 被编译为 IL。然后在软件的安装点上或者运行时,IL 由即时 (JIT) 编译器转换为机器码。
      

  3.   

    把在源代码编译成中间代码的过程,CLR没有发挥作用吧,只是编译成中间语言后,才用CLR把它编译成机器代码的,是这样的吗?
      

  4.   

    >>>>把在源代码编译成中间代码的过程,CLR没有发挥作用吧,只是编译成中间语言后,才用CLR把它编译成机器代码的,是这样的吗?是这样的
      

  5.   

    .net调用com组件的原理是什么?