我正在尝试将一些使用的代码移植Hashtable
到没有此类的环境中。所以我考虑不要弄乱代码,只需创建我自己的Hashtable
from Dictionary
,如下所示:
public class Hashtable : Dictionary<Object, Object> {
// ...
new public IDictionaryEnumerator GetEnumerator() {
var ie = base.GetEnumerator();
while (ie.MoveNext())
yield return new DictionaryEntry(ie.Current.Key, ie.Current.Value);
}
}
我收到此错误:
错误 CS1624:“System.Collections.Hashtable.GetEnumerator()”的主体不能是迭代器块,因为“System.Collections.IDictionaryEnumerator”不是迭代器接口类型
好吧,但是IDictionaryEnumerator
继承自IEnumerator
.
奇怪的是,如果我只是返回(IDictionaryEnumerator)base.GetEnumerator();
代码编译(但在 foreach 循环中运行时失败)。
我不明白这个错误告诉我什么,也不知道如何正确实施。