CTS,CLS,CLR
-
.Net 平台下不只有c#语言,还有VB.Net,F#等语言。IL是程序最终编译的可执行的二进制代码(托管代码),不同的语言最终都编译成标准的IL(中间语言,MSIL);这样c#可以调用VB.Net写的程序集(Assembly,dll,exe);不同语言之间可以互通,相互调用。
-
不同语言中的数据类型各不相同,比如整数在VB.Net中是Integer、c#中是int。.Net平台规定了通用数据类型(CTS,Common Type System),各个语言编译器把自己的语言的类型编译成CTS中的类型。int是c#中的类型,Int32是CTS中的类型;int是c#中的关键字,Int32不是。不同语言的语法不一样,比如定义一个类A继承自B的c#语法是class A:B{},VB.Net的语法是Class A Inherits B。.Net平台规定了通用语言规范(CLS,Common Language Speclfication)。
- 问:String和string的区别是什么?Int32和int的区别是什么?
-
IL代码由公共语言运行时(CLR,Common Language Runtime)驱动运行,CLR提供了人垃圾回收器(GC,Garbage Collection 没有任何引用的对象可以被自动回收,分析什么时候可以被回收)、JIT(Just in Time)即时编译器;
-
值类型是放在栈内存中,引用类型是放在堆内存中,栈内存会在方法结束后自动释放,堆内存则需要GC来回收。

浙公网安备 33010602011771号