简单说下:
1. 为什么.Net类库是可以跨平台的?
因为虚拟机,所以Java也是可以跨平台的。.NET编译后的程序是运行在虚拟机之上的,每个平台把这个虚拟机实现一次就好了。.NET编译后的程序是CIL,是运行在虚拟机上而与平台无关的。
2. 托管语言的反射是怎么实现的?
很简单,因为.NET程序编译的时候把元数据一起编译进去了,也就是类名称、方法签名、字段名等等,所谓反射就是读取这些元数据而已。
3. 为什么CodeDom是什么原理?为什么可以运行时动态编译Assembly?
更简单,因为.NET Framework包含了C#的编译器,虚拟机运行时也支持动态加载Assembly。
4. Visual Studio,SharpDevelop,Xamriam Studio等IDE是怎么实现诸如C#,http://VB.NET语言的智能感知?
由于程序集包含了元数据,所以智能感知变的更方便了(直接读取元数据,无需头文件),但更重要的是C#和http://VB.NET这两个语言在设计的时候,就已经考虑了智能感知的问题,C语言发明的时候IDE是啥都没人见过的说。新的语言在这方面当然是有先天优势的。