在C#编程基础的传智播客.NET基础提高视频(2011新版)-03基础知识.zip有讲到一点:
你的程序由C#编写,将由C#编译器转成MSIL(微软中间语言 Microsoft Intermediate Language), .exe文件里存的是中间语言,中间语言Windows是无法运行的,CLR(公共语言运行时Common Language Runtime)负责执行程序.
其后又讲到 .NET Framework
其中CLR包含:
CLS:公共语言规范 Common Language Specification
CTS:通用类型系统 Common Type System
JIT:即时编译器 Just In Time
C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中。.NET使用通用类型系统(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型,所有面向.NET的语言都最终被编译为 IL,即编译为基于CTS类型的代码。
(CTS)定义了可以在中间语言(IL)中使用的预定义数据类型:
CTS定义了一个类型库,无论时Visual Basic.NET还是c#,他们的类型系统大体类似。因此.NET将各种不同的编程语言的数据类型进行抽象,就有了CTS。虽然每种编程语言都有自己的类型系统,但编译后都会转成CTS类型。不同的语言编写的程序直间可以相互操作。Vb的integer而C#的System.Int32都对应CTS的System.Int32类型。
CTS类型主要分成两大类:引用类型和值类型,这两个类型可以相互转换,方法是装箱和拆箱。
有图的可知,引用类型直接继承自Object对象,值类型继承自ValueType对象,而ValueType继承自Object对象。所以CTS类型最终继承自Object。
|