Ich habe eine Eigenschaft in einer Klasse wie diese
%Vor% Ich möchte, dass es standardmäßig von "Normal"
Gibt es eine Möglichkeit, dies im "automatischen" Stil anstatt im folgenden zu tun
%Vor%Nein, eine automatische Eigenschaft ist nur ein einfacher Getter und / oder Setter und eine Unterstützungsvariable. Wenn Sie irgendeine Art von Logik in die Eigenschaft einfügen möchten, müssen Sie die Syntax der regulären Eigenschaft verwenden.
Sie können den Operator ??
jedoch etwas kürzer verwenden:
Beachten Sie, dass der Setter nicht zum Initialisieren der Eigenschaft verwendet wird. Wenn Sie also den Wert nicht im Konstruktor festlegen (oder einen Wert in der Variablendeklaration zuweisen), ist der Standardwert immer noch null. Sie könnten stattdessen den Getter einchecken, um dies zu umgehen:
%Vor%Eine Möglichkeit ist die Verwendung von PostSharp, wie in diese Antwort auf eine ähnliche Frage.
Sie können den DefaultValue verwenden Attribut:
%Vor%Obwohl es das festhält
Ein DefaultValueAttribute führt nicht dazu, dass ein Member automatisch mit dem Wert des Attributs initialisiert wird. Sie müssen den Anfangswert in Ihrem Code festlegen.
, so dass Sie dies in Verbindung mit der Initialisierung im Konstruktor oder über ein Backing-Feld und die Standardbehandlung verwenden können.
Du brauchst entweder eine Variable wie folgt:
%Vor% Oder verwenden Sie Constructer
, um einen Anfangswert festzulegen:
Tags und Links c# default-value