Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
C#
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
C# (gesprochen „C Sharp“) ist die wichtigste Programmiersprache der Plattform .NET von Microsoft. Mit ihr entstehen Kommandozeilenprogramme, Webanwendungen, Desktop-Programme und Spiele (z. B. mit Unity), und sie läuft heute genauso unter Linux wie unter Windows.
Vorbemerkungen
- .NET SDK: Zum Programmieren in C# braucht man das .NET SDK. Es enthält den Befehl
dotnet, den C#-Compiler, die Laufzeitumgebung und Projektvorlagen. - Installation über apt: Ubuntu 26.04 liefert .NET 10 in den eigenen Paketquellen. Das ist die aktuelle Version mit Langzeitunterstützung (LTS) bis November 2028 und bringt C# 14 mit. Ein Paketarchiv von Microsoft ist nicht nötig.
- Zwei Arbeitsweisen: Seit .NET 10 lässt sich eine einzelne
.cs-Datei direkt mitdotnet runstarten, ganz ohne Projektdatei. Für richtige Programme legt man ein Projekt mitdotnet newan. Diese Anleitung zeigt beides. - Entwicklungsumgebung: Visual Studio Code mit der Erweiterung „C# Dev Kit“ oder JetBrains Rider. Das klassische Visual Studio gibt es nur für Windows, siehe Microsoft Visual Studio.
Installation
1. Paketlisten aktualisieren
Damit apt die aktuelle Version des .NET SDK kennt.
sudo apt update
2. .NET SDK installieren
Installiert das SDK mitsamt Laufzeitumgebungen. Ist es schon vorhanden (z. B. aus der Anleitung ASP.NET Core), meldet apt das nur.
sudo apt install dotnet-sdk-10.0
Prüfen: Die Ausgabe beginnt mit 10.0..
dotnet --version
3. Optional: Nutzungsstatistik abschalten
Die Befehlszeile dotnet kann anonyme Nutzungsdaten an Microsoft senden. Diese Zeile in ~/.bashrc schaltet das für alle künftigen Terminals ab. Danach ein neues Terminal öffnen.
nano ~/.bashrc
Springe mit Strg+Ende ans Ende der Datei und füge in einer eigenen Zeile an (im Terminal mit Strg+Umschalt+V). Speichere mit Strg+O und Enter und beende nano mit Strg+X:
export DOTNET_CLI_TELEMETRY_OPTOUT=1
Einzelne Datei ausführen
4. Arbeitsordner anlegen
Ein eigener Ordner für die Übungsdateien.
mkdir -p ~/csharp-uebung
5. In den Ordner wechseln
Alle folgenden Befehle beziehen sich auf diesen Ordner.
cd ~/csharp-uebung
6. Quelltext anlegen
Legt hallo.cs an. Die Anweisungen stehen direkt in der Datei, eine Klasse mit Main-Methode ist nicht nötig. Sum() und Max() stammen aus LINQ, den Abfragefunktionen von .NET.
nano hallo.cs
Füge diesen Inhalt ein (im Terminal mit Strg+Umschalt+V), speichere mit Strg+O und Enter und beende nano mit Strg+X:
var zahlen = new[] { 3, 1, 4, 1, 5 };
Console.WriteLine($"Hallo aus C# {Environment.Version}!");
Console.WriteLine($"Summe: {zahlen.Sum()}, größte Zahl: {zahlen.Max()}");
7. Datei ausführen
dotnet übersetzt die Datei im Hintergrund und startet sie. Der erste Aufruf dauert einige Sekunden, weitere Aufrufe gehen schneller.
dotnet run hallo.cs
Prüfen: Die Ausgabe lautet:
Hallo aus C# 10.0.…!
Summe: 14, größte Zahl: 5
Konsolenprojekt anlegen
8. Projekt erzeugen
Erzeugt aus der Vorlage console ein Projekt im Unterordner Rechner. Darin liegen die Projektdatei Rechner.csproj und der Quelltext Program.cs.
dotnet new console -o Rechner
9. In den Projektordner wechseln
dotnet run und dotnet build arbeiten mit dem Projekt im aktuellen Ordner.
cd Rechner
10. Quelltext ersetzen
Überschreibt die Vorlage mit einem kleinen Programm, das eine Klasse Konto anlegt und benutzt. Klassen stehen in dieser Schreibweise unterhalb der Anweisungen.
nano Program.cs
Die Datei hat schon Inhalt aus der Vorlage, der vollständig ersetzt wird. Lösche ihn zuerst: Alt+\ springt an den Anfang, Alt+A beginnt eine Markierung, Alt+/ springt ans Ende, Strg+K schneidet alles Markierte aus. Füge diesen Inhalt ein (im Terminal mit Strg+Umschalt+V), speichere mit Strg+O und Enter und beende nano mit Strg+X:
var konto = new Konto("Thorsten");
konto.Einzahlen(100m);
konto.Abheben(30m);
Console.WriteLine($"{konto.Inhaber}: {konto.Stand:C}");
class Konto(string inhaber)
{
public string Inhaber { get; } = inhaber;
public decimal Stand { get; private set; }
public void Einzahlen(decimal betrag) => Stand += betrag;
public void Abheben(decimal betrag)
{
if (betrag > Stand)
throw new InvalidOperationException("Nicht genug Guthaben");
Stand -= betrag;
}
}
11. Projekt starten
Übersetzt das Projekt und startet es.
dotnet run
Prüfen: Die Ausgabe lautet Thorsten: 70,00 € (Währungsformat abhängig von der Spracheinstellung des Systems).
12. Optional: Fertiges Programm erzeugen
Erstellt eine optimierte Fassung im Ordner bin/Release/net10.0/publish. Das Programm dort lässt sich auf jedem Rechner mit .NET-10-Laufzeitumgebung per ./Rechner starten.
dotnet publish -c Release
Prüfen:
./bin/Release/net10.0/publish/Rechner
Wie geht es weiter?
- Bibliotheken: Pakete aus dem Verzeichnis NuGet fügt man mit
dotnet add package <Name>zum Projekt hinzu. - Tests: Die Vorlage
xunitlegt ein Testprojekt an;dotnet testführt die Tests aus. - Webanwendungen: Die Anleitung ASP.NET Core baut darauf auf.
- Weitere Vorlagen:
dotnet new listzeigt alle installierten Projektvorlagen.
Deinstallieren
1. Übungsordner entfernen
Löscht die Beispieldatei und das Projekt.
rm -rf ~/csharp-uebung
2. .NET SDK entfernen
Nur ausführen, wenn .NET auch nicht mehr für ASP.NET Core gebraucht wird.
sudo apt purge dotnet-sdk-10.0
3. Nicht mehr benötigte Abhängigkeiten entfernen
Entfernt die Laufzeitumgebungen und weitere nur für .NET installierte Pakete.
sudo apt autoremove
4. Zwischenspeicher im Benutzerordner löschen
dotnet legt heruntergeladene NuGet-Pakete und Einstellungen in ~/.nuget und ~/.dotnet ab.
rm -rf ~/.nuget ~/.dotnet
5. Optional: Eintrag für die Nutzungsstatistik entfernen
Nur nötig, wenn Schritt 3 der Installation ausgeführt wurde. Löscht die Zeile wieder aus ~/.bashrc.
nano ~/.bashrc
Suche mit Strg+W nach DOTNET_CLI_TELEMETRY_OPTOUT und drücke Enter. Lösche die Zeile export DOTNET_CLI_TELEMETRY_OPTOUT=1 mit Strg+K. Speichere mit Strg+O und Enter und beende nano mit Strg+X.
Prüfen: Die Meldung lautet dotnet: Befehl nicht gefunden bzw. command not found.
dotnet --version
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Open Knowledge (Freies Wissen): Alle Texte stehen unter der freien Lizenz Creative Commons Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-SA 4.0) und können frei gelesen, geteilt und weiterverarbeitet werden.