我如何从Dictionaryinheritance?
我想要Dictionary
所有function,但我希望它为Foo
。
我该怎么做呢?
目前我正在使用
class Foo : Dictionary { /* I'm getting all sorts of errors because I don't know how to overload the constructors of the parent class. */ // overloaded methods and constructors goes here. Foo():base(){} Foo(int capacity):base(capacity){} }
重载父类的构造函数和方法的正确方法是什么?
注意:我认为我滥用了“过载”一词,请更正或建议更正。
你很接近,你只需要从构造函数中删除类型参数。
class Foo : Dictionary { Foo():base(){} Foo(int capacity):base(capacity){} }
要覆盖方法,可以使用override关键字。
不直接回答你的问题,只是一个建议。 我不会inheritance字典,我会实现IDictionary
并聚合一个字典。 这很可能是一个更好的解决方案:
class Foo : IDictionary { private Dictionary myDict; // ... }
如果您只想要相同类型但名称不同,可以using
别名来缩短它:
using Foo = System.Collections.Generic.Dictionary;
然后
Foo f = new Foo();