20% off with code ERSTIS26
5 min read 26 Jul 2026

C# this Keyword einfach erklärt: So nutzt du es richtig

Das this Keyword in C# referenziert die aktuelle Klasseninstanz. Ideal erklärt für Azubis, Studenten & Berufseinsteiger. Jetzt lesen!

Marcel Schmidtpeter By Marcel Schmidtpeter 26 Jul 2026
C# this Keyword einfach erklärt: So nutzt du es richtig

Du sitzt vor deinem ersten C#-Projekt in der Berufsschule oder im Studium. Dein Dozent erklärt Klassen und Objekte, und plötzlich taucht überall das Wort `this` auf. Was genau bedeutet das? Und brauchst du es wirklich?

Kurz gesagt: Das C# this Keyword ist eine Referenz (ein Verweis) auf die aktuelle Instanz einer Klasse. Stell dir vor, du bist in einem Raum voller Kollegen. Jemand ruft "Hey, deine Tasse steht da drüben!" - du weißt automatisch, dass "deine" dich meint. Genau so funktioniert `this` in C#: Es sagt dem Compiler "Ich meine die Variable aus genau diesem Objekt."

Dieses Konzept der objektorientierten Programmierung (OOP) begegnet dir ständig. Egal, ob du Fachinformatiker, IT-Student oder Berufseinsteiger bist. Wenn du das Java this Keyword oder `self` in Python kennst, wirst du viele Parallelen erkennen. Hier geht es um die konkrete Anwendung in C#.

Was ist das C# this Keyword?

Das C# this Keyword ist ein Zeiger auf die aktuelle Instanz der Klasse, in der du dich gerade befindest. Wenn du ein Objekt von einer Klasse erstellst (z. B. `Auto meinAuto = new Auto()`), verweist `this` innerhalb dieser Klasse genau auf dieses eine `meinAuto`.

Du nutzt `this` hauptsächlich, um Mehrdeutigkeiten im Code zu vermeiden. Ein typischer Fall: Ein Methodenparameter heißt genauso wie ein Klassenfeld (eine Klassenvariable). Ohne `this` wüsste der Compiler nicht, ob du den Parameter oder das Feld meinst.

Merke: `this` ist in den meisten Fällen optional. Bei Namensgleichheit zwischen Parameter und Klassenfeld ist es aber zwingend notwendig.

Wie nutzt man this in C# richtig?

Du verwendest das Keyword immer dann, wenn du Klassenfelder von lokalen Variablen oder Parametern unterscheiden musst. Es gibt in der Praxis drei Haupt-Einsatzbereiche, in denen es unverzichtbar ist.

1. Parameter-Shadowing auflösen

Shadowing (Überschattung) passiert, wenn ein Parameter denselben Namen hat wie ein Klassenfeld. Der Parameter "überschattet" das Feld innerhalb der Methode. Ohne `this` greifst du versehentlich auf den Parameter zu.

csharp
public class Auto
{
  private string farbe;

  public void SetzeFarbe(string farbe)
  {
    // Ohne this wuerde hier farbe = farbe passieren (Parameter weist sich selbst zu)
    this.farbe = farbe; // this.farbe = das Klassenfeld, farbe = der Parameter
  }
}

Warum ist das nützlich? Weil du so Parameter und Felder identisch benennen kannst. Das ist in der Praxis eine gängige Konvention. Viele Entwickler finden `farbe` so viel lesbarer als kryptische Namen wie `pFarbe` oder `aFarbe`.

2. Konstruktorverkettung mit this()

Du kannst einen Konstruktor aus einem anderen Konstruktor derselben Klasse heraus aufrufen. Das nennt man Konstruktorverkettung (Constructor Chaining). Damit sparst du dir doppelten Code bei der Initialisierung.

csharp
public class Mitarbeiter
{
  public string Name { get; set; }
  public int Personalnummer { get; set; }
  public string Abteilung { get; set; }

  // Hauptkonstruktor
  public Mitarbeiter(string name, int personalnummer, string abteilung)
  {
    this.Name = name;
    this.Personalnummer = personalnummer;
    this.Abteilung = abteilung;
  }

  // Dieser Konstruktor ruft den Hauptkonstruktor auf
  // Standard-Abteilung ist "IT"
  public Mitarbeiter(string name, int personalnummer)
    : this(name, personalnummer, "IT")
  {
  }
}

Stell dir vor, du hast fünf verschiedene Konstruktoren. Ohne `:this()` müsstest du die Zuweisungen in jedem einzelnen Konstruktor kopieren. Mit der Verkettung machst du es nur einmal im Hauptkonstruktor.

3. Objekte an Methoden übergeben

Manchmal musst du das aktuelle Objekt als Ganzes an eine andere Methode übergeben. Mit `this` kannst du dich quasi selbst an eine andere Klasse weiterreichen.

csharp
public class Bestellung
{
  public int Bestellnummer { get; set; }

  public void Verarbeite()
  {
    // Uebergibt das aktuelle Objekt an eine externe Methode
    BestellVerwaltung.Speichere(this);
  }
}

Das passiert in der professionellen Entwicklung sehr häufig. Typische Beispiele sind Event-Handler, Listener-Patterns oder wenn du ein Objekt in einer externen Liste registrierst.

Wie sieht ein komplettes Praxisbeispiel mit this aus?

Ein durchgehendes, praktisches Code-Beispiel zeigt am besten, wie die Theorie in echtem C#-Code funktioniert. Hier siehst du eine kompilierbare Klasse, die alle drei Einsatzbereiche kombiniert.

csharp
using System;

public class Rechner
{
  private double wert;
  private string seriennummer;

  // Konstruktor mit Verkettung
  public Rechner(double wert) : this(wert, "UNBEKANNT")
  {
  }

  // Hauptkonstruktor
  public Rechner(double wert, string seriennummer)
  {
    this.wert = wert;
    this.seriennummer = seriennummer;
  }

  // Methode mit this-Referenz
  public void Registrieren()
  {
    Datenbank.RegistriereRechner(this);
    Console.WriteLine("Rechner " + this.seriennummer + " registriert.");
  }

  // Methode zum Abrufen des Werts
  public double HoleWert()
  {
    return this.wert;
  }
}

// Hilfsklasse fuer das Beispiel
public static class Datenbank
{
  public static void RegistriereRechner(Rechner r)
  {
    Console.WriteLine("In Datenbank gespeichert: " + r.HoleWert());
  }
}

Um das Ganze zu testen, instanziierst du das Objekt einfach: `Rechner r = new Rechner(42.5, "SN-001"); r.Registrieren();`.

Wichtig: Für statische Methoden gilt das nicht. Dort gibt es kein `this`, weil statische Methoden direkt zur Klasse gehören und nicht zu einer Instanz. Mehr Details dazu findest du in der offiziellen C#-Dokumentation von Microsoft Learn.

Welche häufigen Fehler passieren beim C# this Keyword?

Anfänger machen beim Umgang mit `this` oft drei typische Fehler. Diese führen entweder zu Compiler-Fehlern oder zu unleserlichem Code.

Fehler 1: this in statischen Methoden verwenden

csharp
// FALSCH:
public static void HilfsMethode()
{
  this.wert = 5;  // Compiler-Fehler! this existiert hier nicht
}

// RICHTIG:
public void InstanzMethode()
{
  this.wert = 5;  // Funktioniert, weil es eine Instanzmethode ist
}

Statische Methoden gehören zur Klasse selbst, nicht zu einem konkreten Objekt. Deshalb gibt es dort logischerweise kein `this`. Stell dir eine Bauplan-Zeichnung von einem Haus vor: Auf dem Papier gibt es noch kein echtes Haus - und `this` wäre das echte Haus.

Fehler 2: this für alles verwenden (Overusing)

csharp
// Unnoetig und schwer lesbar:
public void SetzeName(string name)
{
  this.farbe = "rot";
  this.BerechneGroesse();
  this.name = name;
}

// Besser: this nur bei Shadowing nutzen
public void SetzeName(string name)
{
  farbe = "rot";
  BerechneGroesse();
  this.name = name;  // Hier ist es noetig
}

Ein zu häufiges `this` bläht den Code optisch auf und macht ihn schwerer lesbar. Nutze es genau dort, wo es technisch nötig ist.

Fehler 3: this() an falscher Position

csharp
// FALSCH: this() muss hinter die Parameterliste
public Rechner(double wert)
{
  : this(wert, "Standard")  // Compiler-Fehler
}

// RICHTIG: this() nach dem Doppelpunkt
public Rechner(double wert) : this(wert, "Standard")
{
  // Koerper kann leer sein oder zusaetzlichen Code enthalten
}

Die Verkettung mit `: this()` gehört immer in die Signatur des Konstruktors, niemals in den Methodenkörper (die geschweiften Klammern).

Wie sieht ein guter Übungstipp für Azubis und Studenten aus?

Die beste Lernmethode ist, eine eigene kleine Klasse zu schreiben und das Gelernte direkt anzuwenden. Nimm dir 15 Minuten Zeit und baue eine Klasse `Smartphone`.

Anforderungen an deine Übung:

  • Felder: `marke` (string), `speicher` (int), `betriebssystem` (string)

  • Zwei Konstruktoren: Einer nimmt alle drei Werte, einer nur `marke` und `speicher` (Standard-Betriebssystem: "Android")

  • Eine Methode `ZeigeInfo()`, die alle Werte in der Konsole ausgibt.

  • Verwende das C# this Keyword zwingend für die Konstruktorverkettung und bei mindestens einem Parameter-Shadowing.

Wenn du das fehlerfrei hinbekommst, hast du das Konzept erfolgreich verinnerlicht.

Übersicht: Die Einsatzbereiche des C# this Keywords

Für eine schnelle Übersicht sind hier alle Funktionen und Regeln in einer strukturierten Tabelle zusammengefasst.

Einsatzbereich

Syntax

Ist `this` Pflicht?

Parameter-Shadowing

`this.feld = parameter`

Ja, zwingend bei Namensgleichheit

Konstruktorverkettung

`: this(parameter)`

Nein, aber stark empfohlen

Objekt übergeben

`Methode(this)`

Ja, um das ganze Objekt zu referenzieren

Statische Methoden

-

Funktioniert hier nicht (Compiler-Fehler)

FAQ: Häufige Fragen zum C# this Keyword

Hier sind die am häufigsten gestellten Fragen von Azubis und Studenten, kurz und prägnant beantwortet.

Kann ich `this` in statischen Methoden verwenden?

Nein. Statische Methoden haben keine Instanz, auf die `this` verweisen könnte. Du erhältst direkt einen Compiler-Fehler.

Ist `this` in C# dasselbe wie in Java?

Ja, das grundlegende Konzept ist identisch. Auch die Syntax mit `this.feld` und die Konstruktorverkettung funktioniert ähnlich. Siehe dazu auch unseren Beitrag zum Java this Keyword.

Was ist der Unterschied zwischen `this` und `base`?

`this` verweist auf die aktuelle Instanz der eigenen Klasse. `base` verweist hingegen auf die Basisklasse (Elternklasse) bei Vererbung. Du nutzt `base`, um Methoden oder Konstruktoren der Elternklasse aufzurufen.

Muss ich `this` immer schreiben?

Nein. C# macht es optional - außer bei Namenskonflikten zwischen Parametern und Feldern. Ob du es überall schreibst oder nur bei Konflikten, ist reine Stilfrage.

Kann ich `this` für Indexer verwenden?

Ja, `this` wird auch bei Indexern eingesetzt (z. B. `public string this[int index]`). Das ist allerdings ein etwas fortgeschritteneres Thema.

Fazit

Das C# this Keyword ist kein Hexenwerk. Es ist schlichtweg ein Verweis auf das aktuelle Objekt - also auf "dich selbst" in deinem Klassen-Raum. Die drei Haupteinsatzbereiche bleiben im Gedächtnis: Parameter von Feldern unterscheiden, Konstruktoren verketten und sich selbst an andere Methoden übergeben.

Wenn du am Anfang unsicher bist, nutze `this` erst einmal nur bei direkten Namenskonflikten. Mit etwas Praxis entwickelst du schnell ein Gefühl dafür, wann es die Lesbarkeit verbessert und wann es überflüssig ist.

Brauchst du Hilfe beim Verständnis von C# oder der objektorientierten Programmierung? Ob du Azubi, Student oder Berufseinsteiger bist - bei study-it.education findest du individuelle Nachhilfe, die genau da ansetzt, wo du stehst. Schau vorbei und lass uns gemeinsam deine IT-Skills auf das nächste Level heben.


*Vertiefung: Wenn du C# genauer lernen willst, schau dir auch unseren Beitrag zu C# const vs. readonly an - ein weiteres wichtiges Konzept für sauberen Code.*


Matching tutoring

Want 1:1 help with this topic?

First chat · €0 · 30 min

Need someone to walk through this with you?

Instead of re-reading: 30 min with a senior dev.

Book a free first chat →
About the author
Marcel Schmidtpeter
Marcel Schmidtpeter

Das this Keyword in C# referenziert die aktuelle Klasseninstanz. Ideal erklärt für Azubis, Studenten & Berufseinsteiger. Jetzt lesen!

marcel.schmidtpeter@study-it.education →
Keep reading

More reading