Wie kann ich die Kraft der Basiskonstruktor aufgerufen werden in C#?
Ich habe eine BasePage-Klasse, die alle anderen Seiten stammen aus:
public class BasePage
Diese BasePage hat einen Konstruktor, der code enthält, die muss immer laufen:
public BasePage()
{
//Important code here
}
Ich zwingen wollen, die von abgeleiteten Klassen zu nennen, die Basis-Konstruktor, wie folgt:
public MyPage
: base()
{
//Page specific code here
}
Wie kann ich diese durchzusetzen (vorzugsweise zur compile-Zeit)?
InformationsquelleAutor Tom Robinson | 2008-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Basis-Konstruktor wird immer aufgerufen werden, an einem gewissen Punkt. Wenn Sie anrufen
this(...)
stattbase(...)
dann ruft einen anderen Konstruktor der gleichen Klasse - die wiederum wird entweder rufen noch andere Geschwister Konstruktor oder eine parent-Konstruktor. Früher oder später wird man immer auf einen Konstruktor, ruft entwederbase(...)
explizit oder implizit fordert einen parameterlosen Konstruktor der Basisklasse.Sehen dieser Artikel für mehr über Konstruktor-Verkettung, einschließlich der Ausführung Punkte der verschiedenen bits (wie Variablen-Initialisierungen).
InformationsquelleAutor Jon Skeet
Die Basisklasse der Konstruktor ohne Argumente wird automatisch ausgeführt, wenn Sie nicht, rufen Sie eine andere Basisklasse Konstruktor der Einnahme Argumente explizit.
ja, Sie können ganz 🙂
InformationsquelleAutor Johannes Schaub - litb
Basisklasse Konstruktor wird immer aufgerufen, auch wenn Sie nicht explizit aufrufen. So müssen Sie nicht extra arbeiten, um sicherzustellen, dass das passiert.
InformationsquelleAutor Wilka
Einer der base-Konstruktoren immer aufgerufen werden muss, und die Voreinstellung aufgerufen wird, wenn der Basis-Konstruktor nicht explizit angegeben ist.
Edit: umformuliert für Klarheit.
InformationsquelleAutor Pop Catalin