C# Wie kann ein default-Wert für die automatische Eigenschaften?
Habe ich einige Schnittstelle und die Klasse zum implementieren der Schnittstelle:
public interface IWhatever {
bool Value { get; set;}
}
public class Whatever : IWhatever {
public bool Value { get; set; }
}
Jetzt, macht C#
ermöglichen die Value
haben einige default-Wert ohne mit ein paar backing-Feld?
- Meinst du, können Sie geben Sie die Standard-z.B. in diesem Beispiel wollen wir den Wert default auf True?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Als von C# 6 (VS2015) diese syntax ist vollkommen gültig
als ist festlegen eines Werts für eine readonly-Eigenschaft
Die alten, pre-C# 6 Antwort
Spoiler-alert für diejenigen, die eine begeisterungsfähige Natur: Der folgende code funktioniert nicht
Fragen Sie, "Kann ich dies tun?"
Nein, das können Sie nicht. Sie müssen den Standardwert im Konstruktor der Klasse
Wenn da nix hinter ist, ist es standardmäßig auf false, gemäß der Dokumentation.
Jedoch, wenn Sie es wollen, um instanziiert zu werden mit einem anfänglichen Wert andere als
false
Sie können tun, dass auf diese Weise:true
.Den default-Wert ist jetzt
false
. Um estrue
Sie in den Konstruktor.Standardmäßig
Value
wärefalse
aber es kann die Initialisierung im Konstruktor.Können Sie nicht
Value
zu anderen Standard-Wert als den Standardwert, den Datentyp selbst in der Unterkunft. Weisen Sie den Standardwert in den Konstruktor vonWhatever
.Können Sie ein default-Wert im Konstruktor.
Durch die Art und Weise - mit automatischer Eigenschaften, Sie haben noch ein Feld sichern, es wird nur generiert, die für Ihre durch den compiler (syntaktischer Zucker).