CLR.CTS,CLS定义

公共语言运行库(CLR),也叫.NET运行库

CLR处理在.NET Framework 内部运行的代码(称之为托管代码),并负责管理用于执行应用程序的进程和线程。

Microsoft中间语言(MSIL)

MSIL是一个它所支持的语言的扩展集,这样保证了语言的无关性,即.NET语言不能执行MSIL不能执行的操作。

关于MSIL语言:

  1.面向对象设计(OOD)

  2.类的单一实现继承

  3.支持接口

  4.以分离方式严格处理数据类型(值类型放在堆栈上,引用类型则存储在堆上)

  5.强类型系统(处理转换数据类型)

通用类型系统(CTS)

CTS是一个所有.NET语言都支持的数据类型的集合,确保这些语言可以相互传送数据,体现了.NET语言的互操作性。

通用类型系统定义了如何在运行库中声明、使用和管理类型,同时也是运行库支持跨语言集成的一个重要组成部分。通用类型系统执行以下功能:

  1.建立一个支持跨语言集成、类型安全和高性能代码执行的框架。

  2.提供一个支持完整实现多种编程语言的面向对象的模型。

  3.定义各语言必须遵守的规则,有助于确保用不同语言编写的对象能够交互作用。

   

 

CLR内部的每一种数据都是一个对象,象.NET Framework中的所有其他对象一样,均由System.Object派生而来。

System.Object类有四种所有类型都可以使用的方法(常被重载)。  

  1.Equals()  允许对象之间进行比较

  2.GethashCode()  为对象返回散列代码,即对象的唯一身份

  3.GetType()  成为反射

  4.ToString()  返回一个类型的字符串表示法

公共语言规范(CLS)

CLS是一组定义了一种语言的边界的标准,或者说是一种语言(与CLS兼容的)必须支持或遵循的一系列语言功能,从而使得其可以与其他的.NET语言互操作。

因此只要一种语言支持CLS,那么它只能支持MSIL和CTS语言功能的一个子集。如图

语言的互操作性

上面所述,只要代码是CTS许可的,就可以与其他语言的代码交互。这意味着以下的操作都可以完成:

  1.一种类型可以由使用另一种语言编写的另一种类型派生而来

  2.可以将一个对象传送到一个方法,该方法属于由另一种语言编写的另一个类型

  3.一旦产生一个异常,可以将这个异常在使用一种不同语言编写的代码中传递

  4.一个调试器可以在代码的不同方法之间调试,并且显示源代码,即使在多种语言之间进行调试也可以的

你可能感兴趣的:(ls)