如何从 Hashtable 派生类,其对象可以添加,但不能删除或替换?
我必须覆盖什么,特别是如何覆盖 [] 运算符?
最佳答案
在这种情况下,您应该封装它,而不是从字典派生(您应该使用它而不是哈希表)。
Dictionary 有很多方法可以更改集合,将其设为私有(private)成员更容易,然后只需实现添加和访问项的方法即可。
类似于:
public class StickyDictionary<Key, Value> : IEnumerable<KeyValuePair<Key, Value>>{
private Dictionary<Key, Value> _colleciton;
public StickyDictionary() {
_collection = new Dictionary<Key, Value>();
}
public void Add(Key key, Value value) {
_collection.Add(key, value);
}
public Value this[Key key] {
get {
return _collection[key];
}
}
public IEnumerable<KeyValuePair<Key, Value>> GetEnumerator() {
return _collection.GetEnumerator();
}
}
关于c# - 使哈希表不可变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589665/