1.C#与.net的关系
C#是一种独立的语言,它是用于生成面向.NET环境的代码,感觉说了等于没说。但它本身不是.net的一部分。.net支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.net却不支持。C#语言是和.NET一起使用的,所以如果要使用C#高效地开发应用程序,理解Framework就非常重要.
2.CLR, IL, JIT
.Net的核心是公共语言运行库,简称为CLR。
首先C#code会编译成一种中间语言--IL,特点:
1、面向对象、接口支持
2、强数据类型化
3、区分应用和值类型
优点:
1、跨平台、性能优化
编译成IL后,当这段code被调用时,会通过JIT(即时编译)的方式,生成本地机器相关的可执行码。可以根据不同的硬件做相应的优化,实现性能优化。
2、语言互操作性
因为IL的强数据类型话,即每个变量的数据类型是确定的。所以.net中使用CTS(通用类型系统)、CLS(公共语言规范)来对应不同的语言的数据类型。
3、垃圾回收
4、应用程序域
5、程序集