摘要: 理解:重命名就是把一些函数、字段、类、参数的名称 重命名为易于理解,最好是和自身的意义相同的名称。这样更易于理解,也可以减少大量的注释,名字即含义。 详解: 这个重构方法是我经常也是最常用的一种。我们经常给函数、类、字段等命名为一些难以理解,没有实际意义的名称,这样过段时间或者别人看你写的代码的时候 阅读全文
posted @ 2016-03-17 21:50 IT少年 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 继续上节的对象深拷贝,上节讲了通过序列化和反序列化来实现深度拷贝,这一节我们来讲述一下第二种深度拷贝的方法,反射。通过反射来实现深度拷贝。 反射主要是在运行时获取对象的元信息,System.Reflection命名空间允许我们在程序运行时来获取对象的信息、创建已存在类的实例,也能够获取对象的属性和执 阅读全文
posted @ 2016-03-17 21:26 IT少年 阅读(1566) 评论(2) 推荐(0) 编辑
摘要: 简介: System.Object 几乎是所有的类、结构、委托类型的基类。System.Object有一个MemberwiseClone 的方法来帮助我们创建一个当前对象的实例。 存在的问题: System.Object 提供的MemberwiseClone 方法只是对象的浅拷贝,只能把当前对象的非 阅读全文
posted @ 2016-03-17 18:23 IT少年 阅读(2028) 评论(0) 推荐(0) 编辑
摘要: 平时工作中我们经常用foreach来迭代一个集合。比如 基本所有的集合都能够foreach,但是必须要实现IEnumerable接口。IEnumerable接口很简单,就只有一个IEnumerator GetEnumerator() 方法。看这个方法的定义就知道,仅仅是公开了另一个接口IEnumer 阅读全文
posted @ 2016-03-17 15:13 IT少年 阅读(1090) 评论(0) 推荐(0) 编辑
摘要: IEnumerable接口顾名思义就是 可枚举的,可列举的。 接口也很简单,返回一个 枚举器对象 IEnumerator 。 1. IEnumerable 与 IEnumerator IEnumerable只有一个抽象方法:GetEnumerator(),而IEnumerator又是一个迭代器,真正 阅读全文
posted @ 2016-03-17 10:36 IT少年 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 我们经常在工作中用到对List,Dictionary对象的Foreach遍历,取出每一项。 其实这个接口很简单,只有一个属性2个方法。 我通过.NET refelefcor查看源码,看到 有2个方法一个属性。 object Current{get;} 就是反回当前数据, MoveNext()方法就是 阅读全文
posted @ 2016-03-17 10:05 IT少年 阅读(276) 评论(0) 推荐(0) 编辑