Grundlagen Microsoft .NET (.NET Framework / .NET Core)
- Varianten von .NET
- Bestandteile und Dienste von .NET: CLR, Just-in-Time-Compiler, Ahead-of-Timer-Compiler (ab .NET 7.0), Garbage Collector, Exception Handling usw.
- .NET-Werkzeuge: Visual Studio, Visual Studio Code, .NET SDK
Basiswissen
Architektur von C# auf Basis von .NET (.NET-Konzepte, auf denen C# aufbaut)
Standardisierung der Sprache bei ECMA/ISO
Grundprinzipien der Sprache und der Sprachsyntax
Compiler
Datentypen und Literale
Implizit typisierte lokale Variablen / Type Inference (ab C# 3.0)
Verbatim Strings und String Interpolation (ab C# 6.0)
Raw Literal Strings und UTF-8 String Literals (ab C# 11.0)
Nullable Values Types (ab C# 2.0)
Null Referenz-Prüfungen / Nullable Reference Types (ab C# 8.0)
Initializer
Operatoren
Bedingungen und Schleifen
Switch Expressions (ab C# 8.0)
Arrays und Objektmengen
Index und Range (ab C# 8.0)
Objektorientiertes Programmieren mit Csharp
Namensräume
Objekte und Klassen (inklusive aller Besonderheiten wie z.B. abstrakte, statische und partielle Klassen)
Klassen versus Strukturen
Records (ab C# 9.0)
Sichtbarkeit für Typen (public, private, protected, file)
Operatoren typeof() und nameof()
Klassenmitglieder (Methoden, Properties, Fields, Konstruktoren)
Modifizierer für Klassenmitglieder (public, private, protected, readonly, required, …)
Statische Mitglieder
Named/Optional Parameters (ab C# 4.0)
Methoden überladen
Local Functions (ab C# 7.0) und Static Local Functions (ab C# 8.0)
Erweiterungsmethoden (Extension Methods) (ab C# 3.0)
Vererbung (Vererbungsregeln) und Polymorphismus
Abstrakte Klassen
Schnittstellen
Standardimplementierungen in Schnittstellen (ab C# 8.0)
Idisposable/using-Blöcke
Nutzung generischer Klassen
Praxisszenarien
Erzeugung von Anwendungen (EXE)
Erzeugung und Einbindung von Klassenbibliotheken (DLL)
Nutzung externe Klassenbibliotheken via NuGet
Weitere Sprachkonstrukte
Anonyme Typen (ab C# 3.0)
Tupel (ab C# 7.0)
Fehlerbehandlung (Exception Handling)
Exception Filters (ab C# 6.0)
Pattern Matching (ab C# 7.0)
Annotationen (Meta-Daten/.NET-Attribute) verwenden
Language Integration Query (LINQ) / Abfrageausdrücke (Query Expressions) (ab C# 3.0)
Lambda-Ausdrücke (Lambda Expressions) (ab C# 3.0)
Expression-bodied Members (ab C# 6.0)
Delegaten und Ereignisse (Events)
Asynchrone Programmierung
Asynchrone Programmierung mit async/await (ab C# 5.0)
Ausblick
- Ausblick auf fortgeschrittene Sprachfeatures aus dem dem C#-Aufbauwissen
- Ausblick auf neue Sprachfeatures in der Zukunft (soweit aktuell angekündigt)