C# – Fortgeschritten
Abstraktion, Collections, LINQ, async, Dateien und REST – C# im Berufsalltag
Dieser Kurs führt dich von den Grundlagen zu Code, wie du ihn im Betrieb schreibst: lesbar, testbar und robust. Du programmierst gegen Interfaces, verwaltest Daten mit Collections und LINQ, behandelst Fehler sauber, nutzt async/await, liest und schreibst Dateien und JSON und baust einen kleinen REST-Client. Fast jede Lektion hat Programmieraufgaben mit automatischen Tests, damit du sofort siehst, ob dein Code das Richtige tut. Stand der Beispiele: .NET 10 und C# 14, Oktober 2026.
Lernpfad
-
01
Interfaces und Abstraktion
Verträge zwischen Klassen: Interfaces, abstrakte Klassen und warum du gegen Abstraktionen programmierst, damit dein Code austauschbar und testbar wird.
- Interfaces als Vertrag Ein Interface beschreibt, was eine Klasse kann, ohne zu sagen, wie. So tauschst du Implementierungen aus. 14 Min.
- Abstrakte Klassen und gegen Abstraktionen programmieren Abstrakte Klasse oder Interface? Und wie du Abhängigkeiten über den Konstruktor hereinreichst, damit Code testbar wird. 15 Min.
- T Modultest: Interfaces und Abstraktion Test
-
02
Collections und Generics
List, Dictionary, HashSet, Queue und Stack richtig einsetzen, eigene generische Methoden und Klassen schreiben und alles in einer kleinen Warenwirtschaft anwenden.
- Collections: List, Dictionary, HashSet, Queue, Stack Für jede Aufgabe die passende Sammlung wählen: Reihenfolge, Schlüsselzugriff, Eindeutigkeit, Warteschlange oder Stapel. 15 Min.
- Generics und Projekt: kleine Warenwirtschaft Eigene generische Methoden und Klassen mit Constraints schreiben und in einer kleinen Warenwirtschaft mit Artikeln, Beständen und Buchungen einsetzen. 25 Min.
- T Modultest: Collections und Generics Test
-
03
LINQ: Daten abfragen und auswerten
Listen filtern, umformen, sortieren, gruppieren und zusammenfassen, in Methoden- und Abfragesyntax, und die Falle der verzögerten Ausführung.
- LINQ: Filtern, Umformen, Sortieren Where, Select, OrderBy, First/FirstOrDefault, Any, All, Sum und Count: Datenmengen ohne Schleifen auswerten. 14 Min.
- Gruppieren und verzögerte Ausführung GroupBy und ToDictionary für Auswertungen, und warum eine LINQ-Abfrage erst beim Durchlaufen läuft. 15 Min.
- T Modultest: LINQ Test
-
04
Fehlerbehandlung, Debugging und Logging
Ausnahmen gezielt fangen und werfen, Ressourcen mit using freigeben, Stacktraces lesen, mit dem Debugger arbeiten und Logging als Konzept verstehen.
- Exceptions: fangen, werfen, eigene Typen try/catch/finally, wann du eine Exception wirfst, wie du sie weiterreichst und wann sich ein eigener Typ lohnt. 15 Min.
- using, Stacktrace, Debugger und Logging Ressourcen sauber freigeben, Fehler im Stacktrace lokalisieren, mit dem Debugger Ursachen finden und Logging sinnvoll einsetzen. 15 Min.
- T Modultest: Fehlerbehandlung, Debugging und Logging Test
-
05
Asynchrone Programmierung: Task, async und await
Warten, ohne Threads zu blockieren: Task, async/await, der .Result-Fallstrick, mehrere Aufgaben gleichzeitig mit Task.WhenAll und Abbruch mit CancellationToken.
- Task, async und await Was ein Task ist, wie async/await Wartezeiten überbrückt und warum .Result und vergessene awaits Probleme machen. 15 Min.
- Mehrere Aufgaben gleichzeitig und Abbruch Task.WhenAll für gleichzeitige Abfragen, wie Fehler dort ankommen, und CancellationToken zum sauberen Abbrechen. 15 Min.
- T Modultest: Asynchrone Programmierung Test
-
06
Dateien, CSV und JSON
Dateien und Pfade sicher benutzen, CSV selbst parsen und Objekte mit System.Text.Json in JSON umwandeln und zurück.
- Dateien, Pfade und CSV Mit File, Path und Directory arbeiten, Dateien zeilenweise lesen und schreiben und CSV-Zeilen selbst auswerten. 15 Min.
- JSON mit System.Text.Json Objekte mit JsonSerializer in JSON umwandeln und zurück, Optionen sinnvoll setzen und ungültiges JSON abfangen. 15 Min.
- T Modultest: Dateien, CSV und JSON Test
-
07
HTTP und REST-Clients
Mit HttpClient REST-APIs ansprechen: Lebensdauer, JSON lesen und senden, Statuscodes auswerten, Timeouts und Wiederholungen. Alles testbar mit einer Attrappe für den Netzwerkzugriff.
- HttpClient, JSON und Statuscodes HttpClient richtig verwenden, JSON-Antworten lesen, Statuscodes auswerten und den Netzwerkzugriff in Tests durch eine Attrappe ersetzen. 15 Min.
- Projekt: REST-Client für ein Ticketsystem Einen robusten REST-Client mit Statusauswertung, JSON, Wiederholungen bei vorübergehenden Fehlern und Abbruch entwickeln. 30 Min.
- T Modultest: HTTP und REST-Clients Test