Informiert wie ein Fuchs.

C# lernen: Einstieg, erstes Programm und Lernpfad

C# lernst du am effizientesten in dieser Reihenfolge: Entwicklungsumgebung installieren, das erste lauffähige Programm schreiben, dann Schritt für Schritt Variablen, Bedingungen, Schleifen, Methoden und Klassen üben. Dieser Beitrag führt dich genau diesen Lernpfad entlang – mit einem funktionierenden ersten Programm, kurzen Codebeispielen zu jedem Grundbaustein und drei Übungsaufgaben zum Selbsttesten.

Welche Umgebung du brauchst

Für C# brauchst du zwei Dinge: das .NET SDK (Compiler, Laufzeitumgebung und Befehlszeilen-Tools) und einen Editor. Aktuell ist .NET 10 die neueste Version – ein Long-Term-Support-Release, das bis November 2028 mit Updates versorgt wird und C# 14 mitbringt. Du lädst das SDK kostenlos von der offiziellen „.NET herunterladen“-Seite von Microsoft für Windows, macOS oder Linux.

Als Editor reichen zwei Optionen für den Einstieg:

  • Visual Studio Code mit der Erweiterung „C# Dev Kit“ – schlank, kostenlos, läuft auf allen drei Betriebssystemen. Für den Einstieg die empfohlene Wahl.
  • Visual Studio Community – umfangreicher, mit eingebautem Debugger und Formular-Designer, aber nur für Windows und kostenlos nur unter bestimmten Nutzungsbedingungen (Einzelentwickler, kleine Teams, Bildung, Open Source).

Nach der Installation prüfst du in einem Terminal, ob alles funktioniert:

dotnet --version

Die Ausgabe sollte mit 10. beginnen, zum Beispiel 10.0.100. Erscheint stattdessen eine Fehlermeldung wie „Befehl nicht gefunden“, ist das SDK noch nicht korrekt installiert oder nicht im PATH eingetragen – in diesem Fall hilft ein Neustart des Terminals oder der Sitzung nach der Installation.

Dein erstes Programm

Lege mit der .NET-CLI ein neues Konsolenprojekt an:

dotnet new console -o HalloWelt
cd HalloWelt

Das erzeugt einen Ordner mit einer Projektdatei und einer Program.cs. Seit den neueren .NET-Vorlagen reicht darin eine einzige Zeile – sogenannte Top-Level Statements, ohne dass du selbst eine Main-Methode oder eine Klasse anlegen musst. Ersetze den Inhalt der Program.cs durch:

Console.WriteLine("Hallo, C#!");

Führe das Programm aus:

dotnet run

Ausgabe:

Hallo, C#!

Zwei Dinge fallen dabei auf, die für den weiteren Einstieg wichtig sind: Jede Anweisung endet mit einem Semikolon, und C# unterscheidet zwischen Groß- und Kleinschreibung – Console.WriteLine ist nicht dasselbe wie console.writeline.

Variablen und Datentypen

C# ist statisch typisiert: Jede Variable hat einen festen Typ, der beim Kompilieren geprüft wird. Die gebräuchlichsten Grundtypen sind int (Ganzzahl), double (Kommazahl), string (Zeichenkette) und bool (Wahrheitswert):

int alter = 30;
double preis = 19.99;
string name = "Ada";
bool istAktiv = true;
var anzahl = 5; // var: der Typ wird aus dem zugewiesenen Wert abgeleitet, hier int

Console.WriteLine($"{name} ist {alter} Jahre alt.");

Ausgabe:

Ada ist 30 Jahre alt.

var spart nur Schreibarbeit, macht C# nicht dynamisch: Der Compiler legt den Typ bei der Zuweisung fest und lässt danach keine andersartige Zuweisung mehr zu. var anzahl = 5; ist deshalb gleichbedeutend mit int anzahl = 5;.

Bedingungen: if, else und die Alternative switch

int temperatur = 5;

if (temperatur < 0)
{
    Console.WriteLine("Frost");
}
else if (temperatur < 15)
{
    Console.WriteLine("Kühl");
}
else
{
    Console.WriteLine("Warm");
}

Ausgabe:

Kühl

Für Bereiche und wenige Bedingungen ist if/else die natürliche Wahl. Musst du dagegen viele feste Werte prüfen, ist die switch-Anweisung oft übersichtlicher – dazu mehr im Beitrag zur C# Switch-Anweisung.

Schleifen: for, while und foreach

Drei Schleifentypen decken die meisten Fälle ab. Die for-Schleife eignet sich, wenn die Anzahl der Durchläufe von vornherein feststeht:

for (int i = 1; i <= 5; i++)
{
    Console.WriteLine($"Durchlauf {i}");
}

Ausgabe:

Durchlauf 1
Durchlauf 2
Durchlauf 3
Durchlauf 4
Durchlauf 5

Die while-Schleife läuft, solange eine Bedingung wahr ist – passend, wenn die Anzahl der Durchläufe vorher nicht feststeht:

int rest = 3;
while (rest > 0)
{
    Console.WriteLine($"Noch {rest} übrig");
    rest--;
}

Ausgabe:

Noch 3 übrig
Noch 2 übrig
Noch 1 übrig

Und foreach durchläuft jedes Element einer Sammlung, ohne dass du selbst einen Zähler pflegen musst:

string[] farben = { "Rot", "Grün", "Blau" };
foreach (string farbe in farben)
{
    Console.WriteLine(farbe);
}

Ausgabe:

Rot
Grün
Blau

Methoden

Eine Methode fasst Code unter einem Namen zusammen, den du beliebig oft aufrufen kannst. Sie hat einen Namen, eine Parameterliste und einen Rückgabetyp (oder void, wenn sie nichts zurückgibt):

static int Quadrat(int zahl)
{
    return zahl * zahl;
}

Console.WriteLine(Quadrat(6));

Ausgabe:

36

Klassen und Objekte

Eine Klasse beschreibt einen eigenen Datentyp aus Daten (Feldern bzw. Properties) und Verhalten (Methoden). Ein Objekt ist eine konkrete Instanz dieser Klasse:

class Buch
{
    public string Titel { get; set; } = "";
    public int Seiten { get; set; }

    public void Beschreibung()
    {
        Console.WriteLine($"{Titel} hat {Seiten} Seiten.");
    }
}

var buch = new Buch { Titel = "Einstieg in C#", Seiten = 240 };
buch.Beschreibung();

Ausgabe:

Einstieg in C# hat 240 Seiten.

Titel und Seiten sind hier keine einfachen Felder, sondern Properties – sie sehen von außen wie Felder aus, laufen intern aber über get/set. Wie das genau funktioniert und wann sich welche Schreibbarkeits-Variante lohnt, erklärt der Beitrag C# Property: get, set, init und required verstehen.

Drei Übungsaufgaben

Am besten lernst du C#, indem du selbst Code schreibst, bevor du die Lösung ansiehst. Die folgenden drei Aufgaben bauen auf den Grundlagen aus diesem Beitrag auf.

1. Gerade oder ungerade?

Schreibe ein Programm, das für eine Zahl ausgibt, ob sie gerade oder ungerade ist. Tipp: Der Rest-Operator % liefert bei geraden Zahlen 0.

int zahl = 7;
if (zahl % 2 == 0)
{
    Console.WriteLine($"{zahl} ist gerade.");
}
else
{
    Console.WriteLine($"{zahl} ist ungerade.");
}
// Ausgabe: 7 ist ungerade.

2. Summe von 1 bis n

Schreibe eine Methode, die die Summe aller Zahlen von 1 bis n berechnet, und teste sie mit n = 10.

static int SummeBis(int n)
{
    int summe = 0;
    for (int i = 1; i <= n; i++)
    {
        summe += i;
    }
    return summe;
}

Console.WriteLine(SummeBis(10));
// Ausgabe: 55

3. Klasse Person mit berechnetem Alter

Lege eine Klasse Person mit den Properties Name und Geburtsjahr an und berechne daraus das aktuelle Alter.

class Person
{
    public string Name { get; set; } = "";
    public int Geburtsjahr { get; set; }

    public int Alter => DateTime.Now.Year - Geburtsjahr;
}

var person = new Person { Name = "Ada", Geburtsjahr = 1995 };
Console.WriteLine($"{person.Name} ist {person.Alter} Jahre alt.");

Das Ergebnis hängt vom aktuellen Jahr ab, in dem du den Code ausführst. Diese Rechnung mit dem Geburtsjahr ist bewusst vereinfacht: Sie berücksichtigt nicht, ob der Geburtstag im laufenden Jahr schon war.

Wie es weitergeht

Mit diesen Grundlagen kannst du dich gezielt in einzelne Themen vertiefen: die C# Switch-Anweisung für Verzweigungen mit vielen festen Werten, die C# Property für den Unterschied zwischen Feld und Property, sowie C# String Split und C# String to int für den Umgang mit Zeichenketten.

Häufige Fragen

Brauche ich Programmiervorkenntnisse, um C# zu lernen?

Nein. C# hat eine vergleichsweise klare Syntax und eignet sich häufig als erste Programmiersprache. Wichtig ist vor allem, die Grundbausteine aus diesem Beitrag selbst am Rechner auszuprobieren statt nur zu lesen.

Visual Studio oder Visual Studio Code?

Für den Einstieg reicht Visual Studio Code mit der C#-Dev-Kit-Erweiterung völlig aus und läuft auf jedem Betriebssystem. Visual Studio (ohne „Code“) bringt zusätzliche Werkzeuge wie einen visuellen Debugger und einen Formular-Designer mit, ist aber nur für Windows verfügbar.

Ist C# nur für Windows-Programme?

Nein. Über .NET läuft C#-Code auf Windows, macOS und Linux. Typische Einsatzgebiete sind Webanwendungen mit ASP.NET Core, Spiele mit der Unity-Engine, Desktop- und mobile Apps sowie Konsolenprogramme wie die in diesem Beitrag.

Was ist der Unterschied zwischen C# und .NET?

.NET ist die Plattform: Laufzeitumgebung, Basisbibliotheken und Werkzeuge. C# ist eine der Sprachen, die auf dieser Plattform laufen – daneben unter anderem F# und Visual Basic .NET. Wenn du C# lernst, lernst du also immer auch einen Teil von .NET mit.

Wie lange dauert es, die Grundlagen zu lernen?

Das hängt stark von Vorerfahrung und Zeit ab, die du investierst – eine seriöse Zahl lässt sich dafür nicht pauschal nennen. Realistischer als ein festes Datum ist ein Ziel: Wenn du Variablen, Bedingungen, Schleifen, Methoden und einfache Klassen sicher anwenden kannst, hast du die Grundlagen aus diesem Beitrag beherrscht.

Schreibe einen Kommentar