Basisklasse enthält nicht parameterlosen Konstruktor?
Mache ich mich auf den Konstruktoren ein bisschen mehr strenge, indem einige von meinem leeren Konstruktoren. Ich bin ziemlich neu auf Vererbung, und war ratlos, mit der Fehlermeldung, die ich bekam: Basis-Klasse keinen Parameterlosen Konstruktor Enthalten. Wie kann ich A2 Erben ohne einen leeren Konstruktor in A. Auch für mein persönliches Verständnis, warum ist A2 erfordern einen leeren Konstruktor für Eine?
Class A{
//No empty constructor for A
//Blah blah blah...
}
Class A2 : A{
//The error appears here
}
InformationsquelleAutor der Frage sooprise | 2011-10-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Klasse A2, die Sie benötigen, um sicherzustellen, dass alle Ihre Konstruktoren aufrufen der Basisklasse Konstruktor mit Parametern.
Ansonsten geht der compiler davon aus, Sie möchten verwenden Sie den parameterlosen Basisklassenkonstruktor zu konstruieren, die Ein Objekt, auf dem Sie Ihre A2-Objekt basiert.
Beispiel:
InformationsquelleAutor der Antwort Platinum Azure
Beispiel:
InformationsquelleAutor der Antwort Joe
Wenn Sie Ihre base-Klasse keinen parameterlosen Konstruktor, müssen Sie rufen Sie eine von Ihr abgeleiteten Klasse, die mit
base
Stichwort:InformationsquelleAutor der Antwort Jakub Konecki
Es hat zu nennen Konstruktor. Die Standardeinstellung ist ein Aufruf
base()
.Kann man auch mit statischen Methoden, Literale, und alle Parameter, die die aktuelle Konstruktor Aufrufe
base()
.InformationsquelleAutor der Antwort Bryan Crosby
Weil wenn Eine hat kein default Konstruktor, dann der Konstruktor der A2 braucht, um base() mit den Argumenten an den Konstruktor von A. Siehe diese Frage: Aufruf der Basis-Konstruktor in C#
InformationsquelleAutor der Antwort Dennis
wenn Sie erstellen Sie das Objekt Ihrer abgeleiteten Klasse,Ihre Basisklasse Konstruktor wird automatisch aufgerufen.Also an der Zeit, die Sie erstellen Ihr Objekt abgeleiteten Klasse und Ihrer abgeleiteten Klasse Objekt Konstruktor nicht nehmen ein oder mehrere Argumente, da wird nichts passieren der Basisklasse Konstruktor, der will ein argument.
so zu tun, dass zu bekommen, muss man etwas auf die Basisklasse der Konstruktor wie folgt:
InformationsquelleAutor der Antwort Srijan