Gestern habe ich PHP-Kurse gelesen und plötzlich wurde mir etwas seltsam. Und das war über Konstruktoren in C# und PHP.Was genau machen Konstrukteure?
Meine Frage ist, was ist Konstruktor? Ist es nicht eine spezielle Methode, die verwendet wird, wenn eine Klasse instanziiert wird, die so etwas wie eine Methode ausführen kann und notwendige Ressourcen für Klassen wie Memory und etc braucht? Und wenn es zum Beispiel eine Elternklasse namens A gibt, die wir eine andere Klasse namens B ableiten und eine Instanz von B erstellen und den B-Konstruktor aufrufen und einige Argumente an sein Elternelement (A) senden, verwenden wir: base (args.) (in C#) und benutze parent :: __ construct (args) (in PHP), also geht es und rufe den Elternkonstruktor auf, wir wollen nicht genau Ressourcen für das Elternelement nehmen, aber wir rufen einfach den Elternkonstruktor auf, der es tut für uns. Was passiert genau hier?
Ich schätze in diesem Fall einfach nur wie eine Funktion! : \ Ich weiß nicht, ich meine selbst klar ist oder nicht ... Frag mich bitte, wenn es irgendeine Mehrdeutigkeit ist, und Dank;)
Thank AKTUALISIERT von mir die negative Votum der Art und Weise geben ... siehe diesen Link: Microsoft Docs Soweit ich hier lese es ist etwas mehr als eine einfache Funktion, die einen Block von Codes halten. (Aber mit Unterschieden, die Sie sagten, kein Rückgabewert und etc.) wenn es nur eine Funktion ist welches aufgerufen wird, wenn eine Instanz erstellt wird, warum also, wenn wir es privat machen, können wir keine Instanz mehr daraus machen? Warum, wenn wir eine Klasse erstellen wollten, füge a() am Ende des Klassennamens hinzu und wenn wir irgendwelche Argumente an den Konstruktor übergeben wollen, benutze thes() um zu senden? [Person new_person = new Person();] wenn Sie denken, auch dies eine Frage, die keine Mühe nicht zeigt, eine Nein- Stimme wieder: D
Ich denke du bist * im Grunde * da; es ist nur eine Initialisierungsmethode mit Semantik, die dies erzwingt - es gibt kein spezielles Voodoo, das mit einem Konstruktor weitergeht. und sie sind * im Grunde * nur Methoden, die Sie normalerweise nicht unabhängig aufrufen können ... –
Siehe [C# Konstruktor Ausführungsreihenfolge] (https://stackoverflow.com/questions/1882692/c-sharp-constructor-execution-order) . Es gibt eine gute Antwort von Jon Skeet dort. –