Generische Vererbung [c#]



  • Hallo, ich möchte eine generische Klasse erstellen, der ich angeben kann, von welcher Basisklasse sie erben soll. Allerdings bringt mir mein Compiler (VS2005) immer wieder
    folgende Fehlermeldung:

    "Die Ableitung von "BaseT" ist nicht möglich, weil es sich um einen Typparameter handelt."

    Hier mein Testcode:

    namespace GenericsTest
    {
        public class VererbungsTest<BaseT,ValueT> : BaseT
        {
            private ValueT _inhalt;
    
            public VererbungsTest()
            { 
                this._inhalt = default(ValueT);
            }
    
            public ValueT Inhalt
            {
                get
                {
                    return this._inhalt;
                }
                set
                {
                    this._inhalt = value;
                }
            }
        }
    
        public class TestBasisKlasse1
        {
    
        }
    
        public class TestBasisKlasse2
        {
    
        }
    
        static class main
        {
            static void Main()
            {
                // Dieses Objekt soll als Basisklasse "TestBasisKlasse1" haben und verwaltet strings..
                VererbungsTest<TestBasisKlasse1, string> test1 = new VererbungsTest<TestBasisKlasse1, string>();
                test1.Inhalt = "abc";
                System.Console.WriteLine(test1.Inhalt);
    
                // Dieses Objekt soll als Basisklasse "TestBasisKlasse2" haben und verwaltet floats..
                VererbungsTest<TestBasisKlasse2, float> test2 = new VererbungsTest<TestBasisKlasse2, float>();
                test2.Inhalt = 12.3f;
                System.Console.WriteLine(test2.Inhalt);
    
                System.Console.ReadLine();
            }
        }
    }
    

    Ich hoffe, dass mir jemand einen nützlichen Tip, Link geben kann, wie ich das Problem löse ! Danke.

    Ich habe bereits versucht das irgendwie mit where und den Einschränkungen (http://msdn2.microsoft.com/de-de/library/d5x73970.aspx) zu lösen, aber ich schaff das irgendwie nicht...



  • Du kannst bei Generics nicht von Typparametern ableiten. Das sind keine Templates wo der Maschinencode erst bei Instanziierung erzeugt wird.


Anmelden zum Antworten