摘要:
最近在读CLR VIA C#这本著作。看了三分之一,已经有很多感慨了,在此记录一二。CLR自2.0开始支持泛型(Generic),不仅提供了编译时类型安全的保证,更在很大程度上提升了运行时性能!首先和C++模版(Template)做个比较,前者编译时不展开而运行时(JIT)展开,后者编译时展开。前者在展开时会做一定的优化,比如针对所有的引用类型作为泛型参数,泛型只被JIT编译成一份本地代码(native code),而后者对每一种模版参数展开一次。这意味着C++的二进制(binary)文件会更大且运行时占据更多内存。顺便一提,Java的泛型行为和C++类似。然而,当泛型遇到值类型参数时,则针对 阅读全文