C# erschien 2002 als Teil von .NET und wird von Anders Hejlsberg (auch Vater von Turbo Pascal und TypeScript) entworfen. Heute ist es quelloffen und plattformübergreifend.
C# und .NET
| Begriff | Bedeutung |
|---|---|
| C# | die Programmiersprache |
| .NET | Laufzeit (CLR) und Klassenbibliothek; führt den Code aus |
| .NET SDK | Compiler + Werkzeuge (dotnet) zum Entwickeln |
| NuGet | Paketverwaltung (wie npm/pip) |
| ASP.NET Core | Framework für Webanwendungen und APIs |
| MAUI, WPF, WinForms | Oberflächen für Handy und Desktop |
| Unity | Spiele-Engine mit C# als Skriptsprache |
C#-Code wird zu IL (Zwischencode) übersetzt, den die Laufzeit per JIT in Maschinencode verwandelt. Ähnlich wie bei Java, aber mit modernen Sprachfunktionen. Mit Native AOT lassen sich auch eigenständige native Programme erzeugen.
Eigenschaften
- Statisch typisiert und objektorientiert, mit funktionalen Elementen
- Garbage Collector verwaltet den Speicher
- Null-Sicherheit: Der Compiler warnt vor möglichen
null-Zugriffen - LINQ: Datenabfragen direkt in der Sprache
- async/await: einfache asynchrone Programmierung
- Jährlich ein neues Release im November (C# 12 mit .NET 8 LTS, C# 13 mit .NET 9, ...)
Installieren und starten
dotnet --version # Version prüfen
dotnet new console -o hallo # neues Projekt
cd hallo
dotnet run # übersetzen und ausführenEntwicklungsumgebungen: Visual Studio (Windows/Mac), VS Code mit C# Dev Kit, JetBrains Rider.
Dein erstes Programm
Console.WriteLine("Hallo, Welt!");Ausgabe
Hallo, Welt!
Seit C# 9 genügen Top-Level-Anweisungen: Der Code steht direkt in der Datei, kein Main und keine Klasse nötig. Das klassische Gerüst sieht so aus und tut dasselbe:
namespace Hallo;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hallo, Welt!");
}
}Ausgabe
Hallo, Welt!
So führst du den Code aus: .NET SDK installieren (dotnet.microsoft.com). Dann im Terminal dotnet new console -o hallo, in den Ordner wechseln und dotnet run ausführen. Der Code steht in Program.cs.
Merke
- C# ist die Sprache, .NET die Plattform; das SDK enthält Compiler und Werkzeuge
dotnet new console,dotnet runsind die wichtigsten Befehle- Top-Level-Anweisungen machen kleine Programme kurz
- C# ist statisch typisiert, mit Garbage Collector, LINQ und async/await
- Unity, ASP.NET Core und Windows-Anwendungen sind die Hauptanwendungen