Visual C# 2012 Grundkurs

.NET-Runtime-Eintrittspunkt

Testen Sie unsere 1958 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In einer ausführbaren Assembly muss es mindestens einen Datentyp geben, der eine statische Methode mit dem Namen "Main" besitzt. Diese dient der .NET-Runtime als Eintrittspunkt in das Programm.

Transkript

In diesem Abschnitt möchte ich mich der Magie widmen, die dahinter steckt; wie denn .NET überhaupt in der Lage ist, herauszubekommen, welchen Code es ausführen soll. Also, wir haben ja jetzt einfach irgendwie da so einen Datentyp hingeschrieben, wir haben irgendwie eine Methode hingeschrieben und wir haben das Ganze aufgerufen und aufgrund irgendwelcher Vorgänge hat das System genau gewusst, was es tun muss. Um mehr zu illustrieren, was ich damit meine, möchte ich jetzt einfach mal hier diese Methode "Main" kopieren, ich nenne sie mal "Main 2"und lasse sie jetzt einfach mal einen anderen Text ausgeben, damit wir erkennen können, welche der beiden Methoden denn jetzt ausgeführt wird, ob nur die eine oder nur die oder alle beide oder nach welchem Prinzip das verlaufen kann. Ich rekompiliere das noch mal und führe das aus und siehe da: Es wird also immer noch die englische Version hier ausgegeben, die deutsche Version fehlt. Da liegt es nahe, dass es vielleicht mit diesem Namen in der Methode zu tun hat, dass die "Main" heißt. Das wollen wir jetzt einfach mal gegenchecken. Ich tausche nämlich einfach die Namen der Methoden mal aus und wenn jetzt die Annahme richtig ist, dann sollte eigentlich jetzt die deutsche Version erscheinen, also: "Hallo Welt". Jetzt rufe ich das mal auf und siehe da: Es kommt hier "Hallo Welt". Und das Ganze kann ich jetzt noch krasser darstellen, indem ich nämlich sage: Moment mal, was passiert eigentlich, wenn ich jetzt zwei Methoden habe, die "Main" heißen? Das wird ja jetzt eine spannende Sache und ich kompiliere das mal. Und jetzt wird es interessant, weil jetzt wird mir hier der Fehler angezeigt: "Type program already defines a member called 'Main' with the same parameter types." Ok. Also, ich kann in einem Datentyp keine zwei Methoden mit dem Namen "Main" anlegen. OK, dann sollten wir den Test ein bisschen anders auslegen. Ich mache jetzt hier mal ein "Program 2" und das hat jetzt auch zwei Methoden, die heißen genauso wie die anderen. Und jetzt ist die Frage: Wird diese "Main" oder diese "Main" ausgeführt. Dann muss ich jetzt natürlich hier irgendwie die auch unterscheidbar machen. OK, jetzt kriegen wir einen anderen Fehler beim Rekompilieren: "Hello.exe has more than one entry point defined 'Program.Main'." Und jetzt hat uns der Compiler tatsächlich mal verraten, was die Regel ist. Nämlich, dass der Eintrittspunkt in ein Programm eine Methode namens "Main" ist. Und jetzt kann ich die Regel auch mal genau fassen: In einem ausführbaren Assembly – also Assembly ist sozusagen eine .NET-Komponente – in einem ausführbaren Assembly muss es mindestens einen Datentyp geben, der eine statische Methode mit dem Namen "Main" besitzt. Und diese Methode ist der Eintrittspunkt. Wenn das fehlt, dann können wir nichts machen. Das heißt, wenn ich jetzt hier mal alle "Main"-Methoden irgendwie umbenenne, ich speichere das wieder ab, ich rekompiliere das Ganze, dann meckert der Compiler völlig zurecht: Diese Hello.exe "does not contain a static main method suitable for the entry point." Also, mein Hello.exe enthält keine statische "Main"-Methode, die man als Entry Point verwenden könnte. Das war also in diesem Abschnitt die Magie des Eintrittspunkts.

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!