multiple method inherited inherit herencia example c# inheritance collections

c# - method - ¿Cómo heredo de Dictionary?



inherited method c# (3)

Quiero toda la funcionalidad de Dictionary<TKey,TValue> pero la quiero como Foo<TKey,TValue> .
¿Cómo debo hacer esto?
Actualmente estoy usando

class Foo<TKey,TValue> : Dictionary<TKey, TValue> { /* 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<TKey,TValue>():base(){} Foo<TKey,TValue>(int capacity):base(capacity){} }

¿Cuál es la forma correcta de sobrecargar constructores y métodos de la clase padre?

NOTA: Creo que he utilizado mal la palabra "sobrecarga", corríjala o sugerir corrección.


Estuviste cerca, solo necesitas eliminar los parámetros de tipo de los constructores.

class Foo<TKey,TValue> : Dictionary<TKey, TValue> { Foo():base(){} Foo(int capacity):base(capacity){} }

Para anular un método, puede usar la palabra clave de anulación.


No respondiendo directamente a tu pregunta, solo un consejo. No heredaría el diccionario, implementaría IDictionary<T,K> y IDictionary<T,K> un diccionario. Probablemente sea una mejor solución:

class Foo<TKey,TValue> : IDictionary<TKey, TValue> { private Dictionary<TKey, TValue> myDict; // ... }


Si solo desea el mismo tipo pero con un nombre diferente, puede acortarlo con un alias:

using Foo = System.Collections.Generic.Dictionary<string, string>;

y entonces

Foo f = new Foo();