04-- (2019-10-09)-- 来 了解一下CTS、CLS、CLR、MSIL

1.什么是MSIL(IL)?

在.Net平台下,不仅仅只可以运行C#,编写的程序,还有VB.Ne,F#等。IL(微软中间语言)是程序最终编译的可执行的二进制代码(托管代码),不同语言最终都编译成标准的IL,这样C#可以调用VB.Net编写的程序集(Assmebly, dll、exe)。在不同平台下:不同语言可以互联互通,互相调用。

2.什么是CTS?

不同语言的数据类型表示是不一样的,比如VB.Net中Integer表示C#中的int 。
.Net平台规定了通用数据类型CTS(Comment Type System :通用数据类型),各个编译器把数据类型都翻译为CTS规定的类型。c#中 int翻译为Int32。
int是关键字,Int32不是,是CTS中的类型。

string和String ,object和Object的区别也是,c#中的类型和CTS中的类型的区别,它两不是一个东西。

3.什么是CLS?

不同语言语法是不一样的,比如C#中定义一个类继承 class A:B{},VB.Net中类继承 Class A Inherits B。
.Net平台规定了通用语言规范(CLS Comment Language Specification)。

4.什么是CLR?

IL代码由公共语言运行时(CLR Comment Lanaguage Runtime)驱动运行,CLR提供了垃圾回收(GC,Garbage Collection,没有任何引用对象可以被自动回收,分析对象什么时候可以被回收)。

顺便一提
JIT(即时编译器)
值类型是放“栈内存”中的,引用类型是放”堆内存“中的,栈内存对象会在所在执行范围结束后自动释放,堆内存对象由GC回收。

你可能感兴趣的:(04-- (2019-10-09)-- 来 了解一下CTS、CLS、CLR、MSIL)