Ich habe diese Klasse.Gibt es in der früheren Version von C# eine sauberere Möglichkeit, Null-Propagierung zu schreiben?
class Property
{
public int? PropertyId { get; set; }
}
Ich habe folgende Aussage, die ich C# 6,0
Property p = null;
var id = p?.PropertyId.GetValueOrDefault() ?? 0;
Stellt sich heraus, null Ausbreitung arbeiten in nicht C# 5.0 geschrieben in. Ich schrieb es wie folgt um:
int id = 0;
if (propertyByAddress != null && propertyByAddress.PropertyId != null)
{
id = p.PropertyId.Value;
}
Es scheint unnötig wortreich. Gibt es einen saubereren Weg, um es in C# 5.0 zu tun?
Das ist soweit ich weiß; ?. war wahrscheinlich mein Lieblings-Feature von C# 6 :) – BradleyDotNET
Warum verwenden Sie 'GetValueOrDefault'? 'p? .PropertyId ?? 0' sollte gleich funktionieren. – juharr
Ich würde eine Erweiterungsmethode vorschlagen, aber das ist wahrscheinlich noch wortwörtlicher (wenn das ein Wort ist) –