c# - description - title tag bilder



Wie erben ich vom Wörterbuch? (2)

Ich möchte alle Funktionen von Dictionary<TKey,TValue> aber ich will es als Foo<TKey,TValue> .
Wie soll ich das machen?
Momentan benutze ich

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){}

}

Was ist der richtige Weg, Konstruktoren und Methoden der Elternklasse zu überlasten?

HINWEIS: Ich glaube, ich habe das Wort "Überladung" missbraucht, bitte korrigieren Sie es oder schlagen Sie eine Korrektur vor.


Answer #1

Ich beantworte deine Frage nicht direkt, sondern nur einen Ratschlag. Ich würde das Wörterbuch nicht erben, ich würde IDictionary<T,K> implementieren und ein Dictionary aggregieren. Es ist wahrscheinlich eine bessere Lösung:

class Foo<TKey,TValue> : IDictionary<TKey, TValue>
{   

    private Dictionary<TKey, TValue> myDict;

    // ...
}

Answer #2

Sie waren in der Nähe, Sie müssen nur die Typparameter aus den Konstruktoren entfernen.

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

Um eine Methode zu überschreiben, können Sie das Schlüsselwort override verwenden.





collections