上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页
摘要: 建议97:优先考虑将基类型或接口作为参数传递 除了公开及类型或接口外,方法的参数也应该考虑基类型或接口。 以Enumerable类型为例,它的成员方法中只要涉及需要操作集合对象的地方,都要使用IEnumerable泛型接口,比如: 该方法用于获取集合指定数量的一个子集。正是因为存在这个扩展方法。我们 阅读全文
posted @ 2017-12-07 15:41 指间的徘徊 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 建议96:成员应优先考虑公开基类型或接口 类型成员如果优先考虑公开及类型或接口,那么会让类型支持更多的应用场合。 FCL中最典型的例子是集合的功能操作。集合根据功能划分有多种类型,比如List<T>、Dictionary<TKey,TValue>、HashSet<T>等。以一个最简单的操作Empty 阅读全文
posted @ 2017-12-07 15:40 指间的徘徊 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 建议95:避免在构造方法中调用虚成员 在构造方法中调用虚方法会带来一些意想不到的错误,虽然这种方法不常见,但还是需要注意这类陷阱。 运行会出现异常NullReferenceException:未将对象引用设置到对象的实例。 在调用者代码中,我们需要创建一个American的实例对象american。 阅读全文
posted @ 2017-12-07 15:38 指间的徘徊 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 建议94:区别对待override和new override和new使类型体系应为继承而呈现出多态性。多态要求子类具有与基类同名的方法,override和new的作用就是: 如果子类中的方法前面带有new关键字,则该法被定义为独立于基类的方法。 如果子类中的方法前面带有override关键字,则子类 阅读全文
posted @ 2017-12-07 15:37 指间的徘徊 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 建议93:构造方法应初始化主要属性和字段 类型的属性应该在构造方法调用完毕前完成初始化工作。如果字段没有在初始化器中设置初始值,那么它就应该在构造方法中初始化。 类型一旦被实例化,那么它就应该被视为具有完整的行为和属性。 在构造方法中,必须首先为CEO赋值。因为只要存在公司实体,那么它首先就会有一个 阅读全文
posted @ 2017-12-07 15:34 指间的徘徊 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 建议92:谨慎将数组或集合作为属性 数组或集合作为属性会引起这样一个问题:如果属性是只读的,我们通常会认为它是不可用改变的,但如果将只读属性应用于数座或集合,而元素的内容和数量却仍旧可以随意改变。如下所示: 在上面的代码中,我们可以随意对Employees进行集合操作,它不改变的只是自身的引用而已。 阅读全文
posted @ 2017-12-07 15:32 指间的徘徊 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 建议91:可见字段应该重构为属性 字段和属性的本质区别就是属性是方法。 查看下面这个Person类型: 经过编译器编译后,针对属性Name实际会生成一个private字段和两个public方法: 可见,属性实际上是编译器给我们的语法糖。 属性比字段具有以下的优势: 1)可以为属性添加代码。正是因为属 阅读全文
posted @ 2017-12-07 15:30 指间的徘徊 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 建议90:不要为抽象类提供公开的构造方法 首先,抽象类可以有构造方法。即使没有为抽象类指定构造方法,编译器也会为我们生成一个默认的protected的构造方法。下面是一个标准的最简单的抽象类: 其次,抽象类的方法不应该是public或internal的。抽象类设计的本意是让子类继承,而不是用于生成实 阅读全文
posted @ 2017-12-06 17:57 指间的徘徊 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 建议89:在并行方法体中谨慎使用锁除了建议88所提到的场合,要谨慎使用并行的情况还包括:某些本身就需要同步运行的场合,或者需要较长时间锁定共享资源的场合。在对整型数据进行同步操作时,可以使用静态类Interlocked的Add方法,这就极大地避免了由于进行原子操作长时间锁定某个共享资源所带来的同步性 阅读全文
posted @ 2017-12-06 17:55 指间的徘徊 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 建议88:并行并不总是速度更快并行所带来的后台任务及任务的管理,都会带来一定的开销,如果一项工作本来就能很快完成,或者说循环体很小,那么并行的速度也许会比非并行要慢。看这样一个例子,我们比较在同步和并行状态下的时间消耗: 以上代码在笔者当前的双核PC机上的输出为:同步耗时:00:00:00.0005 阅读全文
posted @ 2017-12-06 17:39 指间的徘徊 阅读(213) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 25 下一页