0Pricing
C# Academy · Lektion

Primärkonstruktoren für Klassen

Deklarieren Sie Konstruktorparameter im Typkopf.

Primärkonstruktoren für Klassen ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C# Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Primärkonstruktor?

Mit einem Primärkonstruktor können Sie Konstruktorparameter direkt im Klassenkopf deklarieren, etwa bei class Point(int x, int y). Die Parameter sind im gesamten Klassenrumpf gültig.

using System;

class Point(int x, int y) {
    public int X => x;
    public int Y => y;
}

var p = new Point(3, 4);
Console.WriteLine(p.X + "," + p.Y); // 3,4

Kein Boilerplate mehr

Vor Primärkonstruktoren mussten Sie einen Konstruktorrumpf schreiben, nur um Parameter in Felder zu kopieren. Jetzt deklariert der Kopf die Parameter, und Sie können direkt auf sie verweisen.

using System;

class Greeter(string name) {
    public string Greet() => "Hello, " + name + "!";
}

Console.WriteLine(new Greeter("Ada").Greet()); // Hello, Ada!

Parameter sind überall gültig

Parameter eines Primärkonstruktors können in Property-Initialisierern, Methodenrümpfen und Feld-Initialisierern überall in der Klasse verwendet werden.

using System;

class Circle(double radius) {
    public double Area => Math.PI * radius * radius;
    public double Circumference => 2 * Math.PI * radius;
}

var c = new Circle(2);
Console.WriteLine(Math.Round(c.Area, 2)); // 12.57

Felder und Properties initialisieren

Sie können einen Primärkonstruktorparameter verwenden, um ein Feld oder eine Property bereits bei ihrer Deklaration zu initialisieren.

using System;

class Account(decimal initial) {
    public decimal Balance { get; private set; } = initial;
    public void Deposit(decimal amount) => Balance += amount;
}

var a = new Account(100m);
a.Deposit(50m);
Console.WriteLine(a.Balance); // 150

Validierung im Klassenkopf

Sie können Parameter eines Primärkonstruktors inline validieren, indem Sie beim Zuweisen zu einem Feld Throw-Ausdrücke verwenden.

using System;

class Person(string name) {
    public string Name { get; } =
        string.IsNullOrWhiteSpace(name)
            ? throw new ArgumentException("name required")
            : name;
}

Console.WriteLine(new Person("Lin").Name); // Lin

Zusätzliche Konstruktoren hinzufügen

Eine Klasse mit einem Primärkonstruktor kann weiterhin zusätzliche Konstruktoren deklarieren. Diese müssen jedoch mit : this(...) an den Primärkonstruktor weiterleiten.

using System;

class Box(int width, int height) {
    public int Width => width;
    public int Height => height;
    public Box(int size) : this(size, size) { }
}

var sq = new Box(5);
Console.WriteLine(sq.Width + "x" + sq.Height); // 5x5

Rümpfe von Primärkonstruktoren

Primärkonstruktoren haben keinen eigenen Rumpf. Logik, die bei der Erstellung ausgeführt werden muss, gehört in Feld-Initialisierer oder einen verketteten regulären Konstruktor.

using System;

class Logger(string prefix) {
    private readonly string tag = "[" + prefix + "]";
    public void Log(string msg) => Console.WriteLine(tag + " " + msg);
}

new Logger("INFO").Log("started"); // [INFO] started

Nicht automatisch öffentliche Properties

Anders als bei Records erstellt ein Primärkonstruktor in einer gewöhnlichen Klasse keine öffentlichen Properties. Die Parameter sind für die Klasse privat, sofern Sie sie nicht selbst nach außen geben.

using System;

class Temp(double celsius) {
    // celsius is NOT a public property here
    public double Fahrenheit => celsius * 9 / 5 + 32;
}

Console.WriteLine(new Temp(100).Fahrenheit); // 212

Erfasste Parameter werden zu Feldern

Wenn ein Primärkonstruktorparameter in einer Methode verwendet wird, nicht nur in einem Initialisierer, erfasst der Compiler ihn in einem verborgenen Feld, damit er nach der Erstellung erhalten bleibt.

using System;

class Counter(int start) {
    private int value = start;
    public int Next() => value++;
}

var c = new Counter(10);
Console.WriteLine(c.Next()); // 10
Console.WriteLine(c.Next()); // 11

Einfachere Dependency Injection

Primärkonstruktoren sind bei DI beliebt: Sie deklarieren Services im Klassenkopf und verwenden sie in Methoden, ohne Felder manuell zuzuweisen.

using System;

interface IClock { string Now(); }
class FakeClock : IClock { public string Now() => "12:00"; }

class Service(IClock clock) {
    public string Report() => "Time is " + clock.Now();
}

Console.WriteLine(new Service(new FakeClock()).Report()); // Time is 12:00

Alles zusammenführen

Diese Klasse verwendet einen Primärkonstruktor für ihre Abhängigkeiten und stellt eine berechnete Property bereit – ganz ohne expliziten Konstruktorrumpf.

using System;

class Rectangle(double w, double h) {
    public double Area => w * h;
    public double Perimeter => 2 * (w + h);
}

var r = new Rectangle(3, 4);
Console.WriteLine(r.Area + " " + r.Perimeter); // 12 14

Kurzer Test

Testen Sie Ihr Verständnis von Primärkonstruktoren in Klassen.

Zusammenfassung

Sie haben Primärkonstruktoren für Klassen kennengelernt.

  • class C(int x) deklariert Konstruktorparameter im Klassenkopf.
  • Die Parameter sind im gesamten Klassenrumpf gültig.
  • Zusätzliche Konstruktoren werden mit : this(...) verkettet.
  • In einer gewöhnlichen Klasse werden daraus nicht automatisch öffentliche Properties.

Häufig gestellte Fragen

Ist die Lektion „Primärkonstruktoren für Klassen“ kostenlos?

Ja — der vollständige Text von „Primärkonstruktoren für Klassen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C# Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C# Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Primärkonstruktoren für Klassen“?

Deklarieren Sie Konstruktorparameter im Typkopf. Du übst C# Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C# Academy zu starten?

Keine Vorkenntnisse erforderlich. C# Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Primärkonstruktoren für Klassen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C# Academy-Lektion Code schreiben und ausführen?

Ja. Jede C# Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Primärkonstruktoren für Klassen
  2. Parameter in Membern erfassen
  3. Primärkonstruktoren für Structs
  4. Kombination mit Properties und Basistypen
← Zurück zu C# Academy