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();