1、CTS:通用语言系统
CTS:Common Type System 通用类型系统。Int32、Int16→int、String→string、Boolean→bool。每种语言都定义了自己的类型,.NET通过CTS提供了公共的类型,然后翻译生成对应的.NET类型。
2、CLS:通用语言规范
CLS:Common Language Specification 通用语言规范。不同语言语法的不同。每种语言都有自己的语 法,.NET通过CLS提供了公共的语法,然后不同语言翻译生成对应的.NET语法。
3、CLR:公共语言运行库
CLR:Common Language Runtime 公共语言运行时,就是GC、JIT等这些。有不同的CLR,比如服务器 CLR、Linux CLR(Mono)、Silverlight CLR(CoreCLR)。相当于一个发动机,负责执行IL。
补充:
有时候面试题会问:string和String的区别、int和Int32的区别?
答:string是C#的数据类型,而String是CTS中的数据类型
int也是C#的数据类型,而Int32是CTS中的数据类型!
string 是 C# 中的类,String 是 .net Framework 的类(在 C# IDE 中不会显示蓝色)
C# string 映射为 .net Framework 的String
如果用 string, 编译器会把它编译成 String,所以如果直接用 String 就可以让编译器少做一点点工作。