Konstruktoren
-
Hallo Leute...
folgendes würde ich gerne Schreiben, aber es funktioniert so nicht ^^
KonstruktorSubClass(Dataset ds) : base(ds) { hier würde ich gerne Code schreiben, aber er wird nicht ausgeführt }
D.h. ich will Daten an die Basisklasse weitergeben und dennoch Code im Konstruktor der Subklasse ausführen.
Wäre für Tipps sehr dankbar.Gruß
-
Was heißt:
aber es funktioniert so nicht ^^
Demonstrier uns dochmal an deinem speziellen Beispiel was da nicht funktioniert?
Dann können wir dir auch besser helfen.
-
KonstruktorSubClass(Dataset ds) : base(ds) { MessageBox.Show("Code wird ausgeführt"); }
hier wird zwar das Objekt erstellt.. aber die MessageBox nie angezeigt (also dieser Teil des Konstruktors nie ausgeführt).
Und ich dachte der Code im Konstruktur müsste trotz :base(ds) ausgeführt werden!Danke und Gruß
-
Ja müsste er auch, zeig doch mal wie du die ganze Sache aufrufst.
-
new KonStruktorSubClass(new DataSet(..));
-
Debug dich doch einfach mal durch und schau ob der Code wirklich nicht ausgeführt wird
-
Moin,
ich wette Dein Beispiel ist nur eine schematische Darstellung und kein gekürztes Copy&Paste aus Deinem richtigen Quelltext ... meine vermutung ... Du rufst irgendwo einen anderen Konstruktor auf ... schon mal mit dem Debugger mitgegangen?
hand, mogel
-
Hallo Leute,
ihr habt Recht.. es wird ausgeführt. ^^
Damit nehme ich die Frage zurück.Wie bin ich darauf gekommen das es nicht so ist?
Im Basiskonstruktor habe ich eine abstrakte Methode aufgerufen (welche in d. Unterklasse implementiert wird), welche auf ein Steuerelement zugreift, welches erst im Konstruktor der Unterklasse erstellt wurde. Daher eine NullPointerException bevor der Konstruktor der Unterklasse aufgerufen wurde. Und deshalb dachte ich er wird gar nicht aufgerufen, da meine Vermutung war, er müsse schon aufgerufen worden sein. Kompliziert formuliert.. aber ist eigentlich ganz logisch.Danke euch trotzdem für eure Mühe!