Welcome

首页 / 软件开发 / C# / 构建可反转排序的泛型字典类(7)--实现IDictionary接口

构建可反转排序的泛型字典类(7)--实现IDictionary接口2010-11-267. 实现IDictionary接口

前面做了很多努力,现在终于可以实现 IDictionary接口了。当然,之所以要先实现它,目的之一还是为了之前留下的 一点遗憾:在foreach中使用DictionaryEntry访问集合中的元素。

需要 注意,由于ReversibleSortedList类最主要的接口是泛型IDictionary接口,实 现非泛型IDictionary接口主要是考虑到兼容性,试想,你的项目是用.NET 1.0 实现的,但现在你需要使用.NET 2.0继续完善程序并使用到了一些.NET 2.0所独 有的功能。但你并不想更改之前曾写好并稳定运行了很久的程序,此时,兼容是 非常重要的。,IDictionary接口成员大部份是显式接口成员实现。这一节请对 照第5节的图2观看,最好下载用图片浏览器打开,我们先改变 ReversibleSortedList类的声明,加上IDictionary:

public class ReversibleSortedList<TKey, TValue> :

IDictionary, IEnumerable<KeyValuePair<TKey, TValue>>, ICollection, IEnumerable

从ICollection接口开始实现:

由于它的Count属性 只是指示一个整数,可以和ICollection<KeyValuePain<TKey, TVlaue>>共用,并且前面已经实现了它,所以无需再另外实现。剩下的就 只是IsSynchnonised、SyncRoot属性和CopyTo方法了,但CopyTo方法 ICollection<KeyValuePain<TKey, TVlaue>>接口中也有,在MSDN 中查看两个方法的定义:

ICollection中的是:

void CopyTo( Array array, int index)

而 ICollection<KeyValuePain<TKey, TVlaue>>中的是

void CopyTo(T[] array, int arrayIndex)