2.3 Programmausführung
2.3.1 Ausgabe mit WriteLine
Bevor wir das Programm zum ersten Mal starten, sollten wir die Main()-Prozedur noch mit etwas Leben füllen. Tun wir dies nicht, wären wir gar nicht in der Lage festzustellen, ob das Programm überhaupt läuft. Eine sehr einfache Möglichkeit ist es, eine Ausgabe zu erzeugen. Da wir eine Konsolenanwendung schreiben, können wir in eben diese schreiben. Dazu gibt es ein Modul Console mit einer Funktion WriteLine (eigentlich ist Console kein Modul, sondern eine Klasse, aber der Aufruf bleibt in beiden Fällen derselbe). Der Zugriff auf die Funktion erfolgt über den Modulnamen, gefolgt von einem Punkt. Um die Ausgabe für den Menschen lesbarer zu machen, enthält sie in der Regel einen beschreibenden Text, der immer in Anführungszeichen stehen muss. Um sicherzustellen, dass wir beim Test nicht auf eine alte Ausgabe schauen, geben wir außerdem noch einen Zeitstempel mit aus. Beim Lauf des Programms wird der Platzhalter {0} durch den ersten Parameter nach der Zeichenkette ersetzt, hier also den Zeitstempel. Ein Platzhalter für einen zweiten Parameter hieße {1} und so fort.
' ...\2_Sprachsyntax\ErsteKonsolenanwendung\Module1.vb |
Module Module1 Sub Main() Console.WriteLine("Start {0}!", DateTime.Now) End Sub End Module
Diese Art der Ausgabe mit WriteLine ist nur eine unter vielen. Bei Bedarf werden weitere Aufrufmöglichkeiten eingeführt werden.
2.3.2 Start und Test
Nun sind wir so weit, das Programm das erste Mal laufen zu lassen. Dazu haben Sie drei Möglichkeiten:
- StartDebugPfeil.tifSie klicken auf die Starten-Schaltfläche in der Symbolleiste.
- Sie wählen den Menüpunkt Debuggen • Debugging starten.
- Sie drücken die -Taste.
Die Konsole öffnet sich daraufhin kurz und wird anschließend sofort wieder geschlossen. Sollte Ihr Programmcode auf einem Server in einem Netzwerk gespeichert sein, kann es passieren, dass Sie eine Fehlermeldung des Sicherheitssystems von .NET bekommen. Die einfachste Lösung besteht in der De-facto-Abschaltung der Sicherheitsmechanismen. Abbildung 2.4 zeigt, dass der Anwendung voll vertraut werden soll. Der Dialog ist über den Menüpunkt Projekt • ErsteKonsolenanwendung Eigenschaften… zu erreichen.
Abbildung 2.4 Sicherheit abschalten (nur, wenn nötig)
Um festzustellen, was passiert ist und wo gegebenenfalls ein Fehler ist, schalten wir die Zeilennummerierung über den Menüpunkt Extras • Optionen ein. Es öffnet sich der Dialog aus Abbildung 2.5, in dem wir ein Häkchen setzen, um die Nummerierung anzuschalten.
Abbildung 2.5 Anzeige von Zeilennummern anschalten
DebugEinzelschritt.tifDer Ablauf eines Programms lässt sich mit dem in Visual Studio integrierten Debugger einfach verfolgen. Dazu starten wir den Debugger im Einzelschrittmodus, indem wir auf die Schaltfläche klicken, oder über den Menüpunkt Debuggen • Einzelschritt. Nach ein paar Sekunden sehen wir, wo das Programm beginnt. Der gelbe Pfeil in Abbildung 2.6 zeigt auf die Zeile, die als Nächstes ausgeführt wird: Main.
Abbildung 2.6 Start des Programms
Nach einem weiteren Schritt befinden wir uns vor der Ausgabe (Abbildung 2.7).
Abbildung 2.7 Vor der Ausgabe
In der Windows-Taskleiste (Abbildung 2.8) oder mit + (Abbildung 2.9) können wir zur Ausgabe springen, die offen gehalten wird, da das Programm angehalten worden ist.
Abbildung 2.8 Umschaltung zur Konsole mit der Taskleiste
Abbildung 2.9 Umschaltung zur Konsole mit »Alt«+ »Tab«
Die Konsole zeigt, dass noch keine Ausgabe erfolgt ist (Abbildung 2.10).
Abbildung 2.10 Noch keine Ausgabe
Der nächste Schritt bringt uns zum Ende der Prozedur, also hinter die Ausgabe (Abbildung 2.11).
Abbildung 2.11 Nach der Ausgabe
Die Ausgabe ist in der Konsole zu sehen (Abbildung 2.12). Das Programm hat also genau das gemacht, was wir programmiert haben!
Abbildung 2.12 Ausgabe auf Konsole
Ein weiterer Schritt beendet das Programm. Wenn man weiß, wo man ein Programm unterbrechen möchte, ist es schneller, einen Unterbrechungspunkt (Breakpoint) zu setzen. Dazu klicken wir mit der Maus in die fünfte Programmzeile, die End Sub enthält. Der Breakpoint wird durch einen roten Punkt markiert (Abbildung 2.13).
Abbildung 2.13 Setzen eines Breakpoints
Nun starten wir die Konsolenanwendung erneut, jedoch nicht im Einzelschrittmodus, sondern über den grünen Rechtspfeil, den Menüpunkt Debuggen • Debugging starten oder . Nach ein paar Sekunden unterbricht das Programm, und der Abbruchpunkt wird markiert, wie in Abbildung 2.14 zu sehen ist.
Abbildung 2.14 Der Breakpoint wurde erreicht.
Dann sehen wir in der Konsole die gewünschte Ausgabe.
2.3.3 Unterbrechung mit ReadLine
Um diese Klimmzüge, um zur Ausgabe eines Programms zu kommen, zu vermeiden, fügen wir als letzte Anweisung der Main-Prozedur eine Anforderung einer Tastatureingabe hinzu. Dies führt dazu, dass das Programm den Programmfluss unterbricht, um die Eingabe zu lesen, und die Konsole so lange offen hält, bis wir mit oder die Eingabe abschließen. Die verwendete Methode ReadLine ist auch eine Methode von Console.
Module Module1
Sub Main()
Console.WriteLine("Start {0}!", DateTime.Now)
Console.ReadLine()
End Sub
End Module
In allen Anwendungen, die auf der Konsole basieren, wird der Methodenaufruf Console.ReadLine() zukünftig grundsätzlich als letzte Anweisung stehen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.