03 2010 档案
摘要: 本章主要讲的就是有哪些途径把参数传入方法中,包括如何选择性的指定参数,命名参数,通过引用传递参数,如果定义可以接收可变参数的方法。最后还给出了方法的参数和返回值的参考指南。阅读全文
摘要: 本章的焦点是开发过程中会用到的各种方法,包括实例构造器、类型构造器(静态构造)、操作符重载、类型转换方法。最后讨论了扩展方法,也就是怎么在现有类型中加入方法(Decorate Pattern?) ,还有将功能的实现代码分别放在不同文件中的部分方法。阅读全文
摘要: 这章的内容比较简单,主要就是说明了const和static readonly的特征和区别。 阅读全文
摘要: 本章讲了类型和成员的一些基本概念:类型成员的种类;类型和成员的可见性;静态类的特征;部分类型的用法和优点;CLR调用的两种方式;最后给出了定义类时的一些建议。阅读全文
摘要: 本章主要讲述的是不同种类的类型(原生类型,引用类型、值类型,动态原生类型),以及这些类型的共性与特性。解释了装箱和拆箱的作用,哪些情况下会发生,如何来避免。还有需要特别注意的在override System.Object的方法(Equals, GetHashCode...)时的重要规则,还有dynamic与var之间的差别。阅读全文
摘要: 本章主要讲的是类型的一些基本概念,一切类型都是从System.Object继承下来了,在具体的实现中有CLR内部调用机制来进行优化,这与Python的实现有明显的不同,尤其是在内存分配的处理上,.NET显然更高效。然后说明了不同类型之间是如何转换的,以及命名空间的实现原理,命名空间与程序集之间的关系。最后说明了在运行期,CLR是如何使用线程栈和应用程序堆的,并逐步解释了程序执行过程中栈和堆的变化,以及JIT参与的情况。阅读全文
摘要: 本章主要关注如何创建可以被多个应用程序使用的程序集。提出了几个问题并进行了分析:
1. 如何保证在修正bug或添加功能时不会破坏现有的应用程序?
2. 如何解决文件版本问题?
3. 如何创建强名称的程序集?
4. 如何发布程序集,CLR如何定位并加载程序集?
5. “registering”程序集到GAC的目的是什么?
6. 如何进行延迟签名以及延迟签名的作用是什么?
7. 如何在运行时决定类型引用?阅读全文
摘要: 本章主要介绍了模块、程序集的文件结构,它们之间的关系,部署程序集的方式以及需要注意的问题。阅读全文
摘要: 本章主要介绍了CLR,托管代码,程序集,IL,Unsafe Code,CTS,FCL,CLS的一些基本概念。
1. 讲述了如何将各种语言的代码编译成托管模块,然后组装成程序集,CLR如何加载并执行这些程序集中的代码;
2. 介绍了NGen的用途和局限性,分析了为什么托管代码有可能比本地代码执行起来效率的可能原因;
3. 解释了CTS/CLR、编程语言(C#、VB、……)、CLS之间的关系;
4. 给出了托管代码与非托管代码三种互操作场景。 阅读全文