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); // AdaDas 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); // Linrequired 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 30required 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); // 10required-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); // abc123Konstruktoren 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); // Samrequired 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 0required 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 PenAufwendige 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 | HiSelbstdokumentierende 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); // adaAlles 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:8080Kurze Ü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
initfü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
- init-only-Setter
- Der required-Modifizierer
- Muster für unveränderliche Objekte
- with-Ausdrücke für Records