die folgende Klasse vor:Verwendung Standardeigenschaft Wert in C# Konstruktor initializer
class Foo
{
public string Bar { get; set; } = "foobar";
}
Und dieses Stück Code:
var foo = new Foo {
Bar = bar == null
? null
: bar
};
Offensichtlich ist der Wert von Bar
null
nach der Ausführung sein würde Code (angenommen, dass bar = null
).
Ich möchte, dass der Konstruktorinitialisierer in bestimmten Fällen den Standardeigenschaftswert verwendet (z. B. wenn bar
null
ist). Ich möchte wissen, ob es ein einfacherer Weg, dies zu tun statt mit:
if (bar == null) {
foo = new Foo();
} else {
foo = new Foo { Bar = bar };
}
Oder
foo = new Foo();
if (bar != null)
foo.Bar = bar;
einfach nicht belegen den Wert? 'if (bar! = null) {...}' –
@ LasseV.Karlsen wäre die bedingte Anweisung komplex, wenn die Anzahl der Parameter zunimmt. – danrah
Mögliches Duplikat von [Objektinitialisierer und dynamisch spezifizierende Eigenschaften] (http://stackoverflow.com/questions/2234091/object-initializer-and-dynamically-specifying-properties) – slawekwin