【发布时间】:2009-09-02 08:30:21
【问题描述】:
我有一个从 Dictionary 派生的类。我需要这个类来模拟 HashSet,因为 Silverlight 不知道 HashSet,而且我的类大量使用 HashSet。所以我决定用 Dictionary 交换 HashSet。为了进一步将我的类与所有 HashSet-Objects 一起使用,我尝试制作一个自定义 HashSet 类,该类从 Dictionary 派生并覆盖所有相关方法,例如 Add-method:
class HashSet<T> : Dictionary<T, object>
{
public override void Add(T element)
{
base.Add(element, null);
}
}
现在我需要为我的新 HashSet 类启用 foreach 循环。显然,我的类在 foreach 循环中返回一个 KeyValuePair,但我需要 T 作为返回类型。谁能告诉我,我需要什么以及如何重写 Dictionary 基类?
提前致谢, 弗兰克
【问题讨论】:
-
非常好的问题,确实。从我们的角度来看,Jon Skeet 的回答帮助我的代码库变得更有意义和可用。
标签: c# inheritance dictionary