Warum ist der wichtigste Methode Eintrittspunkt in den meisten C # -Programme statisch?
-
23-09-2019 - |
Frage
Warum ist der wichtigste Methode Eintrittspunkt in den meisten C # -Programme statisch?
Lösung
Um eine Instanz-Methode aufrufen, müssen Sie eine Instanz eines Objekts. Dieses Mittel, um Ihr Programm der CLR zu starten müßten eine Instanz von etwa Program
schaffen, um die Methode Main
zu nennen. Daher der Konstruktor von Program
würde, bevor Main
laufen, die den Zweck besiegt von insgesamt einen Haupt haben.
Andere Tipps
Ich würde die Frage umdrehen. Was ist das überzeugende Nutzen Sie die Funktion der Implementierung, die Haupt eine Instanzmethode sein können? Features sind teuer; wenn es kein zwingender Vorteil ist, dass sie nicht umgesetzt bekommen.
Haben Sie einen wirklich guten Grund, warum Haupt erlaubt sein soll, eine Instanzmethode sein?
Konzeptionell haben Sie nur eine Instanz einer statischen. Und eine statische Methode ordnet gut an das Idiom eines einzigen Ausgangspunkt für ein Programm. Die Sprachdesigner haben könnten eine spezielles Programm Klasse zu verwenden, um mit einem Hauptverfahren geschaffen, sondern wählen eine einzelne statische Funktion als Einstiegspunkt zu schaffen. Auf einigen Ebenen seine wirklich nur eine Design-Wahl.
Weil sonst hätte es ein Objekt erstellen, und den Konstruktor ausgeführt könnte negative Nebenwirkungen verursachen.
Wie können Sie erstellen Ihre Klasseninstanz vor dem Haupt sonst?
Die .NET runtime
ruft die Main
Methode. (Hinweis: Haupt kann auch aus anderen Ländern, beispielsweise aus dem Code Main () in einem anderen Verfahren zur ExampleClass aufgerufen werden.) Das static
Schlüsselwort macht das Verfahren zugänglich ohne instance
von ExampleClass
. So Main-Methode ist ein Einstiegspunkt und muss statisch deklariert werden.
Ansonsten würde das Programm benötigen eine Instanz, aber jede Instanz würde erfordert ein Programm.
Um zu vermeiden, dass die unauflöslich circular dependency
Haupt als Einstiegspunkt verwendet wird
Referenz: http://en.wikipedia.org/wiki/C_Sharp_(programming_language
Statische Methoden können ohne eine Instanz ausgeführt werden. Vereinbarungsgemäß haben sie die main
Methode als Standardmethode zum Aufruf.
für alle Objekte einer Klasse enthält Haupt-Methode und andere Methoden und Variablen gibt es getrennte Kopien der einzelnen Variablen und Methoden, die von allen Objekten enthalten, sondern eine Hauptklasse Kopie ist nur ein zwischen ihnen und so eine Kopie zwischen der Anzahl der machen Objekte müssen wir Haupt-Methode als statisch machen.