2 Grundlagen der Sprache C#
2.1 Konsolenanwendungen

2.1.1 Allgemeine Anmerkungen

Nach der Einführung im ersten Kapitel wenden wir uns nun der Programmierung zu, die sich grundsätzlich in zwei Kategorien einteilen lässt:
- in die fundamentale Sprachsyntax
- in die Objektorientierung
Ein tiefgehendes Verständnis beider Ansätze ist Voraussetzung, um eine auf .NET basierende Anwendung entwickeln zu können. Wenn Sie keine Programmierkenntnisse haben, auf die aufgebaut werden kann, ist das gleichzeitige Erlernen beider Teilbereiche schwierig und hindernisreich – ganz abgesehen von den Problemen, die der Umgang mit der komplexen Entwicklungsumgebung aufwirft. Wir werden uns daher in diesem Kapitel zunächst der Syntax von C# ohne Berücksichtigung der Objektorientierung zuwenden – zumindest weitestgehend, denn ohne den einen oder anderen flüchtigen Blick in die .NET-Klassenbibliothek werden wir nicht auskommen.
Um den Einstieg möglichst einfach zu halten, insbesondere für diejenigen Leser, die sich zum ersten Mal mit der Programmierung beschäftigen, werden wir in unseren Programmbeispielen zunächst nur Konsolenanwendungen entwickeln. Konsolenanwendungen werden im DOS-Fenster ausgeführt. Sie sind einerseits überschaubarer als Anwendungen mit visualisierter Benutzeroberfläche, andererseits kann man sich mit der Entwicklungsumgebung schrittweise vertraut machen, ohne durch die vielen Dialogfenster und automatisch generierten Code sofort den Überblick zu verlieren.
Das Ziel dieses Kapitels ist es, Ihnen die fundamentale Sprachsyntax von C# näherzubringen. Erst danach soll der objektorientierte Ansatz in den Kapiteln 3 und 4 eingehend erläutert werden.
2.1.2 Ein erstes Konsolenprogramm
Nach dem erstmaligen Öffnen eines Projekts vom Typ Konsolenanwendung wird im Code-Editor eine Codestruktur angezeigt, die der gewählten Vorlage entspricht. Sie sieht wie folgt aus:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
Listing 2.1 Der automatisch generierte Code einer Konsolenanwendung
Dieser Code besitzt noch keinerlei Funktionalität, die wir zur Laufzeit des Programms beobachten könnten. Er gibt uns nur den minimalen Rahmen vor, in den wir unseren Code hineinschreiben müssen.
Eine Konsolenanwendung öffnet ein Kommandofenster und schreibt in dieses Informationen. Das wollen wir nun in unserer ersten kleinen Anwendung realisieren und uns die Zeichenfolge »C# macht Spaß.« ausgeben lassen. Dazu ergänzen Sie den Programmcode folgendermaßen:
static void Main(string[] args)
{
Console.WriteLine("C# macht Spaß.");
Console.ReadLine();
}
Listing 2.2 Eine erste Ausgabe in der Konsole
Wir haben zwei Zeilen Programmcode eingefügt. Die erste dient dazu, eine Ausgabe in die Konsole zu schreiben. Mit der genauen Syntax dieser Anweisung werden wir uns später noch auseinandersetzen. Würden wir auf die zweite Anweisung verzichten, träte ein hässliches Phänomen auf: Das Konsolenfenster würde sich zwar öffnen, aber auch sofort wieder schließen. Wir könnten kaum die Ausgabe der Zeichenfolge lesen. Mit
Console.ReadLine();
stellen wir sicher, dass die Konsole so lange geöffnet bleibt, bis der Anwender sie
mit der -Taste schließt. Nahezu gleichwertig können Sie auch
schreiben. Der Unterschied ist der, dass ReadKey auf jede Taste reagiert.
Nun wollen wir uns vom Erfolg unserer Aktion natürlich auch überzeugen und das Laufzeitverhalten testen. Dazu gibt es mehrere Möglichkeiten:
- Sie klicken in der Symbolleiste auf die Schaltfläche Starten.
- Sie wählen im Menü Debuggen das Element Debuggen starten.
- Sie drücken die
-Taste auf der Tastatur.
Sie können das Projekt aus der Entwicklungsumgebung auch starten, wenn Sie im Menü Debuggen das Untermenü Starten ohne Debuggen wählen. Das hat den Vorteil, dass Sie auf die Anweisung
verzichten können. Dafür wird an der Konsole automatisch die Aufforderung Drücken Sie eine beliebige Taste ... angezeigt.
Wenn die Ausführung gestartet wird, sollte sich das Konsolenfenster öffnen und wunschgemäß die Zeichenfolge
C# macht Spaß.
anzeigen. Geschlossen wird die Konsole durch Drücken der -Taste. Daraufhin wird die Laufzeit beendet, und wir gelangen wieder in die Entwicklungsumgebung
zurück.
Nehmen wir an, Sie hätten einen »kleinen« Fehler gemacht und vergessen, hinter der Anweisung
Console.ReadLine()
ein Semikolon anzugeben. Wie Sie später noch erfahren werden, muss jede C#-Anweisung mit einem Semikolon abgeschlossen werden. Nun würde ein syntaktischer Fehler vorliegen, den unser C#-Compiler natürlich nicht akzeptieren kann. Sie bekommen eine Meldung zu dem aufgetretenen Fehler in einem separaten Fenster angezeigt, in der sogenannten Fehlerliste (siehe Abbildung 2.1).
Abbildung 2.1 Die Liste mit den Fehlermeldungen
In unserem Beispiel ist nur ein Fehler aufgetreten. Wären es mehrere, würden diese der Reihe nach untereinander erscheinen. Die Beschreibung des Fehlers ist in den meisten Fällen recht informativ – zumindest wenn man etwas Erfahrung im Umgang mit .NET hat. Da sich .NET-Anwendungen in der Regel aus mehreren Dateien zusammensetzen, wird zudem die betroffene Datei genannt und die Zeile, in der der Fehler aufgetreten ist.
Sollten Sie im Codefenster keine Zeilennummern sehen, können Sie die Anzeige über das Menü Extras • Optionen einstellen. Markieren Sie dazu in der Liste den Eintrag Text-Editor • Alle Sprachen, und setzen Sie das Häkchen vor Zeilennummern.
Doppelklickt man auf einen Listeneintrag im Fenster Fehlerliste, springt der Eingabecursor in die Codezeile, die den Fehler verursacht hat. An dieser Stelle sei angemerkt, dass mehrere Fehlereinträge nicht zwangsläufig verschiedene Fehlerursachen haben müssen. Häufig kommt es vor, dass ein einzelner Fehler zu Folgefehlern bei der Kompilierung führt, die ihrerseits alle in der Liste erscheinen. Daher sollten Sie sich in der Fehlerliste immer zuerst dem ersten Eintrag widmen, da dessen Beseitigung oft zu einer Reduzierung oder gar kompletten Auflösung der Fehlerliste führt.
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.