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 mit dotnet run starten, ganz ohne Projektdatei. Für richtige Programme legt man ein Projekt mit dotnet new an. 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 xunit legt ein Testprojekt an; dotnet test führt die Tests aus.
  • Webanwendungen: Die Anleitung ASP.NET Core baut darauf auf.
  • Weitere Vorlagen: dotnet new list zeigt 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.

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.

Autor: Thorsten · Installationsanleitungen für Ubuntu

Alle Anleitungen ohne Gewähr. Befehle mit sudo verändern das System – vorher lesen, dann ausführen.