我需要知道如何在某个静态类中重写某个Dictionary的Add-method。有什么建议?

如果重要的话,字典如下所示:

public static Dictionary<MyEnum,MyArray[]>

有什么建议?

最佳答案

您无法覆盖AddDictionary<,>方法,因为它是非虚拟的。您可以通过在派生类中添加具有相同名称/签名的方法来隐藏它,但是隐藏与重写不同。如果有人强制转换为基类,他仍然会调用错误的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/

10-10 13:39