0Pricing
C# Academy · Lektion

Der required-Modifizierer

Zwingen Sie Aufrufer, erforderliche Properties zu setzen.

Der required-Modifizierer ist eine kostenlose C# Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Der required-Modifizierer

Der required-Modifizierer zwingt Aufrufer dazu, beim Erstellen eines Objekts eine Eigenschaft oder ein Feld zu setzen. Fehler wie „Sie haben einen Wert vergessen“ werden dadurch von der Laufzeit in die Kompilierzeit verlagert.

using System;

class Person {
    public required string Name { get; init; }
}

var p = new Person { Name = "Ada" };
Console.WriteLine(p.Name); // Ada

Das Weglassen eines required-Members führt zu einem Kompilierfehler

Wenn ein Aufrufer ein required-Member auslässt, meldet der Compiler einen Fehler, bevor das Programm überhaupt ausgeführt wird.

using System;

class Person {
    public required string Name { get; init; }
}

// var bad = new Person { }; // compile error: Name is required
var good = new Person { Name = "Lin" };
Console.WriteLine(good.Name); // Lin

required mit init

required lässt sich besonders gut mit init kombinieren: Der Wert muss bei der Erstellung angegeben werden und kann danach nicht mehr geändert werden.

using System;

class Config {
    public required string Url { get; init; }
    public int Timeout { get; init; } = 30;
}

var c = new Config { Url = "https://api" };
Console.WriteLine(c.Url + " " + c.Timeout); // https://api 30

required mit set

Sie können auch eine setzbare Eigenschaft als required markieren. Sie muss initialisiert werden, kann später aber weiterhin geändert werden.

using System;

class Box {
    public required int Size { get; set; }
}

var b = new Box { Size = 5 };
b.Size = 10; // still mutable
Console.WriteLine(b.Size); // 10

required-Felder

Auch Felder können als required markiert werden, nicht nur Eigenschaften.

using System;

class Token {
    public required string Value;
}

var t = new Token { Value = "abc123" };
Console.WriteLine(t.Value); // abc123

Konstruktoren und required

Wenn ein Konstruktor ein required-Member setzt, müssen Aufrufer, die diesen Konstruktor verwenden, es nicht mehr selbst setzen. Verwenden Sie [SetsRequiredMembers], um den Compiler darüber zu informieren.

using System;
using System.Diagnostics.CodeAnalysis;

class Person {
    public required string Name { get; init; }
    [SetsRequiredMembers]
    public Person(string name) => Name = name;
}

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

required und optionale Member kombinieren

Nur die von Ihnen markierten Member sind verpflichtend. Andere bleiben mit ihren Standardwerten optional.

using System;

class Account {
    public required string Owner { get; init; }
    public decimal Balance { get; init; } = 0m;
}

var a = new Account { Owner = "Kai" };
Console.WriteLine(a.Owner + " " + a.Balance); // Kai 0

required bei Vererbung

Required-Member werden vererbt. Eine abgeleitete Klasse kann eigene required-Member hinzufügen, und alle müssen gesetzt werden.

using System;

class Base { public required int Id { get; init; } }
class Item : Base { public required string Name { get; init; } }

var i = new Item { Id = 1, Name = "Pen" };
Console.WriteLine(i.Id + " " + i.Name); // 1 Pen

Aufwendige Konstruktoren ersetzen

required + init ersetzt häufig umfangreiche Konstruktoren: Sie erhalten verpflichtende Member und gleichzeitig die gut lesbare Syntax von Objektinitialisierern.

using System;

class Email {
    public required string To { get; init; }
    public required string Subject { get; init; }
    public string Body { get; init; } = "";
}

var e = new Email { To = "a@b.com", Subject = "Hi" };
Console.WriteLine(e.To + " | " + e.Subject); // a@b.com | Hi

Selbstdokumentierende Absicht

Durch die Kennzeichnung von Membern als required dokumentieren Sie, welche Werte unverzichtbar sind. Dadurch wird der Typ leichter korrekt verwendbar.

using System;

class Registration {
    public required string Username { get; init; }
    public required string Password { get; init; }
    public bool Newsletter { get; init; }
}

var r = new Registration { Username = "ada", Password = "x" };
Console.WriteLine(r.Username); // ada

Alles zusammenführen

Ein Typ, der required-, optionale und validierte Member kombiniert.

using System;

class Server {
    public required string Host { get; init; }
    public int Port { get; init; } = 8080;
    public string Address => Host + ":" + Port;
}

var s = new Server { Host = "localhost" };
Console.WriteLine(s.Address); // localhost:8080

Kurze Überprüfung

Überprüfen Sie, was der required-Modifizierer garantiert.

Zusammenfassung

Sie haben den required-Modifizierer kennengelernt.

  • Er zwingt Aufrufer dazu, das Member bei der Erstellung zu initialisieren. Dies wird vom Compiler überprüft.
  • Er lässt sich mit init für verpflichtende unveränderliche Member kombinieren.
  • [SetsRequiredMembers] ermöglicht es einem Konstruktor, die Anforderung zu erfüllen.
  • Required-Member werden vererbt.

Häufig gestellte Fragen

Ist die Lektion „Der required-Modifizierer“ kostenlos?

Ja — der vollständige Text von „Der required-Modifizierer“ 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 „Der required-Modifizierer“?

Zwingen Sie Aufrufer, erforderliche Properties zu setzen. 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 2 von 4.

Wie lange dauert die Lektion „Der required-Modifizierer“?

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. init-only-Setter
  2. Der required-Modifizierer
  3. Muster für unveränderliche Objekte
  4. with-Ausdrücke für Records
← Zurück zu C# Academy