建议109:谨慎使用嵌套类
来源:互联网 发布:php static 编辑:程序博客网 时间:2024/06/05 16:03
建议109:谨慎使用嵌套类
使用嵌套类的原则是:当某类型需要访问另一个类型的私有成员时,才将它实现为嵌套类。一个典型的例子是在实现集合时,要为集合实现迭代器,这时用到了嵌套类。代码如下所示:
public class ArrayList : IList, ICollection, IEnumerable, ICloneable{ //省略 public virtual IEnumerator GetEnumerator() { return new ArrayListEnumeratorSimple(this); } [Serializable] private sealed class ArrayListEnumeratorSimple : IEnumerator, ICloneable { //省略 internal ArrayListEnumeratorSimple(ArrayList list) { this.list = list; this.index = -1; this.version = list._version; this.isArrayList = list.GetType() == typeof(ArrayList); this.currentElement = dummyObject; } }}
我们可以注意到,嵌套类ArrayListEnumeratorSimple访问了若干外部类ArrayList的私有成员。
另外需要强调的是,如果必须出现一个嵌套类,应该将其实现为private。也就是说,除了包含它的外部类外,不应该让任何其他类型可以访问到它。嵌套类的服务对象应该属于当前类。
转自:《编写高质量代码改善C#程序的157个建议》陆敏技
0 0
- 建议109:谨慎使用嵌套类
- 建议89:在并行方法体中谨慎使用锁
- 谨慎使用Date和Time类
- 要谨慎使用Indy的TIdHashMessageDigest类
- 谨慎使用Date和Time类
- 谨慎使用Date和Time类
- 谨慎使用mailto标签
- 谨慎使用OpenSessionInViewFilter
- 谨慎使用百度音乐盒
- 谨慎使用 private inheritance
- union的谨慎使用
- 谨慎使用IsMissing函数
- 全局变量应谨慎使用
- 谨慎使用 CSS Sprites
- 谨慎使用USES_CONVERSION
- 谨慎使用null
- 谨慎使用触发器
- [C#] 谨慎使用DynamicInvoke
- 迭代器和解析
- 数据库学习计划
- 面试题1
- Friday the Thirteenth(USACO)
- 数组合并
- 建议109:谨慎使用嵌套类
- 我的第一篇博客
- 带缓存功能的图片查看器
- js追加元素的几种方法(append()、prepend()、after()、before()、insertAfter()、insertBefore())
- 动态规划-菲波那切数列--DP_2
- nodejs学习(一)
- C# 线程池ThreadPool的用法简析
- Android+Servlet图片上传 (Tomcat+jsp)
- java多thread 一个runnable