Anders Heijlsberg
C#, entwickelt von Anders Heijlsberg und seinem Team bei Microsoft und erstmals im Jahr 2000 veröffentlicht, ist eine moderne, objektorientierte Programmiersprache, die Teil des .NET-Frameworks ist.
C# wird häufig für die Entwicklung von Windows-Anwendungen, Webanwendungen und Spielen verwendet. Bekannte Beispiele für Anwendungen, die in C# entwickelt wurden, sind die Entwicklungsumgebung Visual Studio, die Webanwendungsplattform ASP.NET und Spiele, die mit der Unity-Engine erstellt wurden, wie »Hearthstone« und »Monument Valley«. Heutzutage ist C# immer noch äußerst relevant, da es eine breite Palette von Anwendungsbereichen abdeckt und durch die .NET-Plattform sowie die Unterstützung durch Microsoft kontinuierlich weiterentwickelt wird.
Um ein C#-Programm zu starten, benötigst du eine .NET-Laufzeitumgebung. Diese ist in der Regel auf Windows-Systemen vorinstalliert. Für den Workspace werden wir die freie .NET-Implementierung Mono verwenden, die plattformübergreifend auf Windows, macOS und Linux läuft.
C#-Programme werden in Textdateien mit der Endung .cs
geschrieben Diese Dateien werden dann mit dem C#-Compiler mcs
kompiliert, um ausführbare Dateien zu erzeugen. Diese haben die Endung .exe
und sie können unter Linux und macOS mit dem Mono-Laufzeitumgebung ausgeführt werden.
Stelle zuerst sicher, dass du keinen Ordner geöffnet hast. Um sicherzugehen, drücke einfach den Shortcut für »Ordner schließen«: StrgK und dann F. Dein Workspace sollte jetzt ungefähr so aussehen:
Klicke auf »New File« und wähle als Dateityp »Text File« (oder bestätige einfach mit Enter).
Schreibe nun den folgenden Code in die Datei:
1 2 3 4 5 6 7 8 9 |
using System; public class HelloWorld { public static void Main(string[] args) { Console.WriteLine("Hello, World!"); } } |
Da Visual Studio Code noch nicht weiß, dass es sich um C#-Quelltext handelt, ist dein Programm momentan noch einfarbig, aber das wird sich gleich ändern. An dem weißen Punkt erkennst du, dass deine Änderungen noch nicht gespeichert sind.
Drücke nun StrgS, um die Datei zu speichern. Gib HelloWorld.cs
ein – der vollständige Pfad zu deiner Datei lautet dann /workspace/HelloWorld.cs
.
Sobald du die Datei gespeichert hast, wird sie automatisch als C#-Datei erkannt und die Syntax wird hervorgehoben.
Bevor wir das Programm ausführen können, müssen wir es kompilieren. Dadurch wird der Quelltext des Programms in eine ausführbare Datei übersetzt, die von der .NET-Laufzeitumgebung ausgeführt werden kann.
Öffne dazu ein Terminal, indem du entweder StrgJ drückst oder das Panel-Symbol rechts oben drückst. Dein Fenster sollte jetzt ungefähr so aussehen:
Wir rufen jetzt den C#-Compiler mcs
auf, um das Programm zu übersetzen:
mcs HelloWorld.cs
mcs He
und drücke Tab, um den Dateinamen automatisch zu HelloWorld.csd
vervollständigen zu lassen.
Wenn du keinen Fehler gemacht hast, wird das Programm erfolgreich kompiliert und die Datei HelloWorld.exe
wird im selben Verzeichnis erstellt. Du kannst dies überprüfen, indem du dir die Dateien im aktuellen Verzeichnis mit ls
oder ls -l
anzeigen lässt:
Die Datei HelloWorld.class
ist die ausführbare Datei. Sie kann allerdings unter Linux nicht direkt gestartet werden, sondern muss mit der Mono-Laufzeitumgebung ausgeführt werden. Um das Programm auszuführen, gib folgenden Befehl ein:
mono HelloWorld.exe
Das Programm sollte die Nachricht Hello, World!
im Terminal ausgeben. Du kannst beide Schritte auch in einem Befehl kombinieren:
mcs HelloWorld.cs && mono HelloWorld.exe
&&
sorgt dafür, dass der zweite Befehl nur ausgeführt wird, wenn der erste erfolgreich war.
Wenn du einen Fehler im Code machst, wird der Compiler eine Fehlermeldung ausgeben. Versuche zum Beispiel, statt WriteLine
das Wort WriteLin
zu schreiben:
Console.WriteLin("Hello, World!");
Speichere die Datei und führe den Compiler erneut aus:
mcs HelloWorld.cs
Der Compiler sollte eine Fehlermeldung ausgeben, die dir hilft, den Fehler zu finden:
Es lohnt sich, die Fehlermeldungen genau zu lesen, um den Fehler zu finden und zu beheben. Achte auf die Zeilennummer (in diesem Beispiel 7) und den Text, der dir sagt, was falsch ist. Denke daran, den Fehler wieder zu beheben, bevor du das nächste Beispiel ausprobierst.
Im zweiten Beispiel wollen wir eine Zahl in ihre Primfaktoren zerlegen. Wir erreichen dies mit einem sehr einfachen Algorithmus, der einfach alle Zahlen von 2 bis zur eingegebenen Zahl durchprobiert und dabei diejenigen Zahlen ausgibt, bei denen die Division ohne Rest möglich ist. Außerdem wird die eingegebene Zahl durch jeden gefundenen Primfaktor geteilt, um die Schleife möglichst schnell zu beenden. An diesem Beispiel kannst du sehen, wie man in C# Benutzereingaben verarbeitet und Schleifen verwendet. Erstelle eine neue Datei mit StrgAltN und schreibe den folgenden Code hinein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; class Factor { static void Main() { Console.Write("Enter a number: "); int number = int.Parse(Console.ReadLine()); Console.Write("Prime factors: "); for (int i = 2; i <= number; i++) { while (number % i == 0) { Console.Write(i + " "); number /= i; } } Console.WriteLine(); } } |
Speichere die Datei unter dem Namen Factor.cs
. Kompiliere das Programm:
mcs Factor.cs
Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:
Das Programm hat die Zahl 123 in ihre Primfaktoren zerlegt und ausgegeben. Probiere aus, was passiert, wenn du die Zahl 3000000000 eingibst. Was könnte der Grund dafür sein?
Im dritten Beispiel wollen wir eine Liste von 10 Zufallszahlen sortieren. Dafür verwenden wir den Bubblesort-Algorithmus, der zwar nicht besonders effizient ist, aber sehr einfach zu verstehen und zu implementieren. Der Bubblesort-Algorithmus funktioniert, indem er die Liste mehrmals durchläuft und benachbarte Elemente vertauscht, wenn sie in der falschen Reihenfolge sind.
An diesem Beispiel kannst du sehen, wie man in C# Arrays verwendet, Funktionen verwendet und Schleifen verschachtelt.
Erstelle eine neue Datei und schreibe den folgenden Code hinein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
using System; class BubbleSort { static void Main() { int[] numbers = new int[10]; Random random = new Random(); // Fill the array with random integers for (int i = 0; i < numbers.Length; i++) { numbers[i] = random.Next(1, 100); } Console.WriteLine("Original array:"); PrintArray(numbers); // Sort the array using bubble sort Sort(numbers); Console.WriteLine("Sorted array:"); PrintArray(numbers); } static void Sort(int[] arr) { int n = arr.Length; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { // Swap arr[j] and arr[j+1] int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } static void PrintArray(int[] arr) { foreach (int num in arr) { Console.Write(num + " "); } Console.WriteLine(); } } |
Speichere die Datei unter dem Namen BubbleSort.cs
. Kompiliere das Programm:
mcs BubbleSort.cs
Falls du keine Fehlermeldung erhältst, kannst du das Programm ausführen und testen:
Das Programm hat eine Liste von 10 Zufallszahlen sortiert. Versuche, den Quelltext so zu verändern, dass statt 10 Zahlen 100 oder mehr Zahlen sortiert werden.
In diesem Kapitel hast du an drei Beispielen gesehen, wie man ein einfaches C#-Programm schreiben, kompilieren und ausführen kann. Das ist natürlich nur ein erster Eindruck. Um C# wirklich zu beherrschen, musst du noch viel mehr lernen – am besten, indem du eigene Programme schreibst und ausprobierst. Die Buchhandlungen, Bibliotheken und Youtube sind voll von Material für dich. Viel Spaß beim Programmieren!