C# - Vorlagen und spezielle Konstruktoren

Habe ich eine Reihe von Klassen, die alle in der Lage sein constructored mit einem argument wird eine Instanz einer bestimmten Schnittstelle. Da Sie alle konstruiert werden kann, indem das gleiche Objekt (und der Prozess, bei dem diese Konstruktion passiert, ist weitgehend die gleiche in allen Fällen), ich dachte mir, vielleicht templating funktionieren würde. Im Grunde möchte ich etwas wie das hier tun:

public static void dostuff<T, U> (List<T> items)
{
    foreach (T item in items)
    {
        func(new U(item).SpecialMember);
    }
}

Natürlich, dass sich nicht kompilieren, da U ist Vorlagen und somit fehlt SpecialMember sowie die T Konstruktor.

Grundsätzlich werden alle vorliegenden Implementierung der Schnittstelle T hat bestimmte Eigenschaften. U ist eine Implementierung von T which has an additional feature that is needed *and* which can be constructed from an any instance ofU`.

Rat?

InformationsquelleAutor Brian | 2009-02-03
Schreibe einen Kommentar