摘要: 建议20:使用泛型集合代替非泛型集合在建议1中我们知道,如果要让代码高效运行,应该尽量避免装箱和拆箱,以及尽量减少转型。很遗憾,在微软提供给我们的第一代集合类型中没有做到这一点,下面我们看ArrayList这个类的使用情况: ArrayList al=new ArrayList... 阅读全文
posted @ 2015-08-13 23:19 JesseLZJ 阅读(633) 评论(0) 推荐(0) 编辑
摘要: 建议19:使用更有效的对象和集合初始化依赖于属性和FCL 3.5之后的语法规则,现在我们有了更加简洁有效的对象和集合初始化机制:对象和集合初始化设定项。对象初始化: class Person { public string Name { get; set; } ... 阅读全文
posted @ 2015-08-13 22:36 JesseLZJ 阅读(509) 评论(0) 推荐(0) 编辑
摘要: 建议18:foreach不能代替for上一个建议中提到了foreach的两个优点:语法更简单,默认调用Dispose方法,所有我们强烈建议在实际的代码编写中更多的使用foreach。但是,该建议也有不适合的场景。foreach存在一个问题:它不支持循环时对集合进行增删操作。比如,运行下面代码会抛出异... 阅读全文
posted @ 2015-08-13 22:10 JesseLZJ 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 建议17:多数情况下使用foreach进行循环遍历由于本建议涉及集合的遍历,所以在开始讲解本建议之前,我们不妨来设想一下如何对结合进行遍历。假设存在一个数组,其遍历模式可以采用依据索引来进行遍历的方法;又假设存在一个HashTable,其遍历模式可能是按照键值来进行遍历。无论是哪个集合,如果他们的遍... 阅读全文
posted @ 2015-08-13 21:08 JesseLZJ 阅读(561) 评论(0) 推荐(1) 编辑
摘要: 建议16:元素数量可变的情况下不应使用数组在C#中,数组一旦被创建,长度就不能改变。如果我们需要一个动态且可变长度的集合,就应该使用ArrayList或List来创建。 而数组本身,尤其是一维数组,在遇到要求高效率的算法时,则会专门被优化以提升其效率。一维数组也成为向量,其性能是最佳的,在IL中使用... 阅读全文
posted @ 2015-08-13 17:40 JesseLZJ 阅读(737) 评论(2) 推荐(0) 编辑
摘要: Facade 外观模式(结构型模式)系统的复杂度假设我们要开发一个坦克模式系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各个子系统构成。 internal class Engine { public void EAction1() ... 阅读全文
posted @ 2015-08-13 14:07 JesseLZJ 阅读(378) 评论(0) 推荐(0) 编辑