C#预览
1.C#和C++的差异
C#编译成托管代码,托管代码介于高级语言和低级语言之间,运行的时候通过JIT(Just In Time)来动态编译托管代码,而C++直接编译成机器码,即本地代码。
2.什么是动态编译
动态编译就是在中间语言执行的第一次进行编译,把编译好的机器码文件保存起来,以后运行的时候再重新调用。中间语言往往内存占用比较少,相比于机器码更加精炼,使得应用程序的工作集减少了,程序运行过程中只有需要的代码才会动态编译,实现动态优化程序执行(比如说代码占内存少,对缺页中断的优化)。
3.CLR
CLR(Common Language Runtime)公共语言运行库,实现跨平台跨语言的基础,和Java的JVM类似,实现内存管理和垃圾回收。
4.C#2.0特性
- 泛型
- 匿名方法
- 迭代器
- 分布类型
5.C#3.0特性
- 隐式类型声明,编译时推断
- 自动实现属性
- 对象集合初始化器
- 扩展方法
- lambda表达式
6.C#4.0特性
- dynamic类型
- 变异