我需要知道如何在某个静态类中重写某个Dictionary的Add-method。有什么建议?
如果重要的话,字典如下所示:
public static Dictionary<MyEnum,MyArray[]>
有什么建议?
最佳答案
您无法覆盖Add
的Dictionary<,>
方法,因为它是非虚拟的。您可以通过在派生类中添加具有相同名称/签名的方法来隐藏它,但是隐藏与重写不同。如果有人强制转换为基类,他仍然会调用错误的Add
。
正确的方法是创建自己的类,该类实现IDictionary<,>
(接口(interface)),但具有Dictionary<,>
(该类),而不是Dictionary<,>
。
class MyDictionary<TKey,TValue>:IDictionary<TKey,TValue>
{
private Dictionary<TKey,TValue> backingDictionary;
//Implement the interface here
//Delegating most of the logic to your backingDictionary
...
}
关于c# - 覆盖字典。添加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6250706/