1. 概述 本章内容包括 管理非托管资源.使用IDisposable接口 以及 管理析构器和垃圾回收. 2. 主要内容 2.1 理解垃圾回收机制 ① 代码执行的时候,内存中有两个地方存放数据项:堆 和 栈. ② 一个方法结束的时候,其使用的栈空间会被自动清空. 而堆空间,是由垃圾回收器管理的. ③ 垃圾回收器的工作原理是:启动以后,垃圾回收器的标记程序会遍历堆上保存的对象,标记出仍然被引用的对象,然后压缩程序启动,它会把当前仍然存在引用的对象移动到一起,然后释放掉其他不存在引用的对象. ④ 执行…
1. 概述 本章包括 字符串基本操作 以及 查找.遍历.格式化字符串. 2. 主要内容 2.1 在.net平台中使用字符串 C#中,string是用来保存文本信息的.是一个被当做值类型使用的引用类型. C#中,string对象是不可变的.每次更改都会重新创建一个string对象..net内部有称为字符串驻留(interning)的机制来优化效率. 2.2 操作字符串 ① StringBuilder StringBuilder 会使用内部的字符串缓存来提高效率.甚至可以允许修改内部某一个字符. 当…
1. 概述 本章介绍 值类型的装箱拆箱.类型转换 以及 C#4.0新推出的 dynamic 关键字. 2. 主要内容 2.1 装箱和拆箱 2.2 类型转换 有四种方式可以实现类型转换: ① 隐式转换:编译器允许的,类型安全的转换.无需特殊的标记符号,编译器直接转换. ② 显式转换:无法隐式转换,可能会丢失精度的情况,需要用类型符号来强制转换. ③ 自定义转换 class Money { public Money(decimal amount) { Amount = amount; } publi…
1. 概述 本章内容包括 C#5中如何更好的创建类型以及如何扩展现有类型. 2. 主要内容 2.1 如何选择类型 C#类型系统包括三种类型:值类型.引用类型.指针类型.(指针类型用于非托管代码,很少使用.) ① 创建枚举类型(enums) 合理使用枚举类型 可以提高代码的可读性和可维护性. ② 值类型 还是 引用类型 使用值类型的三个推荐的原则: a. 对象的体积小.  b. 对象逻辑上不可变.  c. 使用中会生成很多对象. * 结构类型(struct) 不能自己定义空构造器,不适用继承系统.…
1. 概述 本章包括 设计和实现接口.创建和使用基类 以及 使用.net类库提供的标准接口. 2. 主要内容 2.1 设计和实现接口 一个接口包含公共的方法.属性.事件.索引器.类和结构都可以实现接口. interface IExample { string GetResult(); int Value { get; set; } event EventHandler ResultRetrived; int this[string index] { get; set; } } class Exa…
1. 概述 应用程序间传递数据,需要先将数据对象转化为字符流或字节流的形式,然后接收端收到后再转化回原始的数据对象.这就是序列化与反序列化. 本章介绍 .net中的序列化与反序列化.序列化器的种类 以及 为序列化配置对象. 2. 主要内容 2.1 序列化与反序列化 序列化只能保存对象的数据部分,不能保存方法部分.可以创建custom data transfer object(DTO)来只保存指定的数据信息. .net平台提供三种类型的序列化: ① XmlSerializer: [Serializ…
1. 概述 一个.net程序不仅包含代码和数据,还包含 元数据. 本章介绍如何应用attributes以及如何使用反射来获取它,还有如何使用CodeDom和expression trees来实现在运行时生成代码. 2. 主要内容 2.1 创建和使用attributes ① attributes用来向程序添加元数据.可以应用到所有类型:程序集.类.方法.参数.属性. [Conditional("CONDITION1"), Conditional("CONDITION2"…
1. 概述 本章内容包括 访问控制符.属性 和 显式接口实现. 2. 主要内容 2.1 访问控制符 封装的核心是隐藏信息.访问控制符用来实现类型成员的访问控制. C#的访问控制符有:public, internal, protected, protected internal (or的关系), private. 使用 InternalsVisibleToAttribute, 可以设置开放给其他程序集使用. [assembly:InternalsVisibleTo("Friend1a")…
在ECMAScript中,Function(函数)类型实际上是对象.每个函数也是Function类型的实例,而且都与其它引用类型一样具有属性和方法.由于是函数对象,因此函数名实际上也是一个指向函数对象的指针. 一.函数的声明方式 函数通常是使用函数声明语法定义: 1.普通的函数声明 function sum(sum1,sum2){ return sum1+sum2; } 2.使用变量初始化函数 var sum=function(){ return sum1+sum2; } 3.使用functio…
1. 概述 Windows Azure 是微软的云计算平台.用于 在微软数据中心 通过全局网络 生成.发布和管理应用程序. 本章内容包括 startup tasks 以及  实现 Start, Run 和 Stop 事件. 2. 主要内容 2.1 Windows Azure ① 提供 PaaS 和 IaaS 两种服务. PaaS 提供一个实际的计算平台,包括 操作系统.程序执行环境.数据库 和 web服务器. IaaS 是提供虚拟的机器. ② Windows Azure 有三种类型的解决方案:虚…