C# Konstruktoren

Willkommen zu diesem Tutorial. Wir schauen uns jetzt im Detail an, was C# Konstruktoren sind und wann du sie verwendet kannst.

In der vorherigen Lektion haben wir über Klassen und Objekte gesprochen und du solltest jetzt wissen, dass du von einer Klasse ein Objekt erstellen kannst (mit dem Keyword new):

Movie myMovie = new Movie();

Wir erstellen hier erstmal ganz einfach ein neues Objekt der Movie Klasse. Siehst du die beiden leeren Klammern () ganz am Ende hinter Movie? Diese Klammern sind leer weil wir keine initialen Information mit an das neue Objekt übergeben. Wenn du beispielsweise direkt einen Titel für den Film mit übergeben möchtest, dann können wir genau dafür einen so genannten Konstruktor (“Aufbauer”) erstellen.

C# Konstruktoren erstellen

Ein Konstruktor ist also eine Art Methode die aufgerufen wird, wenn wir ein neues Objekt erstellen. Zu diesem Zeitpunkt können wir dann initiale Werte des Objektes setzen.

Unsere Movie Klasse sieht so aus:

public class Movie {

    public string title;
    public int age;
    public string category;

}

Als nächstes erstellen wir jetzt einen Konstruktor direkt innerhalb der Klasse:

public class Movie {

    public string title;
    public int age;
    public string category;
    
    // Hier ist der Konstruktor
    // Gleicher Name wie die Klasse und kein Rückgabewert
    public Movie () {
    
    }

}

Oben siehst du, dass wir eine Art Methode hinzugefügt haben aber ohne Rückgabewert und mit dem gleichen Namen wie die Klasse.

Merke: Du solltest deine Konstruktoren immer genauso benennen wie die Klasse selbst auch (hier im Beispiel als Movie())

Wenn wir jetzt ein neues Objekt von Movie erstellen…

Movie myMovie = new Movie();

… dann wird der Konstruktor in der Movie Klasse automatisch aufgerufen. Da der Konstruktor derzeit aber noch keinen Inhalt hat wird nichts weiteres passieren.

Konstruktoren mit Parametern

Als nächstes fügen wir dem Konstruktor jetzt Parameter hinzu (für alle oder auch nur für ein paar Felder):

public class Movie {

    public string title;
    public int age;
    public string category;
    

    public Movie (string newTitle) {
     
        // Beachte das this
        this.title = newTitle;

    }

}

Jetzt hat unser Konstruktor einen Parameter mit dem Namen newTitle vom Datentyp string. Daher können wir jetzt beim erstellen eines Objektes auch einen Titel mit in den Konstruktor übergeben:

Movie myMovie = new Movie("Der weiße Hai");

Natürlich können wir dem Konstruktor auch mehrere Parameter hinzufügen und so erreichen, dass wir initiale Werte übergeben können:

public class Movie {

    public string title;
    public int age;
    public string category;
    

    public Movie (string title, int age, string category) {
     
        // <Variablen Name (oben)> = <Wert aus Parameter>
        this.title = title;
        this.age= age;
        this.category = category;

    }

}
Movie myMovie = new Movie("Der weiße Hai", 18, "Horror");

Hier nimmt der Konstruktor jetzt also drei Parameter entgegen (daher übergeben wir auch drei Werte beim erstellen des Objektes).

Wichtig: Siehst du, dass die Parameter von mir genauso benannten wurden wie die Variablen der Klassen?
Wenn du das tust, musst du sicherstellen, dass du das Keyword this verwendest um der Variablen auch den Wert aus dem Parameter zuzuweisen. Ohne this denkt das Programm, dass du immer nur üben den Parameter sprichst und nicht über die Variablen.

Info: Du kannst auch mehrere Konstruktoren mit unterschiedlichen Funktionalitäten erstellen:

public class Movie {

    public string title;
    public int age;
    public string category;

    // Konstruktor nur mit Titel
    public Movie (string title) {
     
        this.title = title;
    }
    
    
     // Konstruktor mit allen Feldern
    public Movie (string title, int age, string category) {
     
        this.title = title;
        this.age= age;
        this.category = category;

    }

}
// Ruft den "kleinen" Konstruktor auf:
Movie myMovie = new Movie("Der weiße Hai");

// Ruft den "großen" Konstruktor auf:
Movie myMovie = new Movie("Der weiße Hai", 18, "Horror");

Damit hast du auch schon das Ende dieses Tutorials erreicht. Ich hoffe, dass du nun verstanden hast was ein C# Konstruktor ist, wie er funktioniert und was seine Hauptaufgabe ist. Genau, initiale Werte zuweisen oder Code im Prozess der Instanziierung ausführen. Hier kannst du noch mehr über C# Konstruktoren erfahren.


Diese Seite verwendet Cookies. Wir können diese zur Analyse unserer Besucherdaten platzieren, um unsere Website zu verbessern, personalisierte Inhalte anzuzeigen und Ihnen ein großartiges Website-Erlebnis zu bieten. Für weitere Informationen zu den von uns verwendeten Cookies öffnen Sie die Einstellungen.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.
Datenschutz
IT Leismann, Inhaber: Jannick Leismann (Firmensitz: Deutschland), verarbeitet zum Betrieb dieser Website personenbezogene Daten nur im technisch unbedingt notwendigen Umfang. Alle Details dazu in der Datenschutzerklärung.