Ich habe daran gearbeitet, älteren Code in unseren Repos zu refactorieren, und ein Gedanke kam mir in den Sinn. Es gibt mehrere Stellen, an denen if-Anweisungen verwendet werden, um zu bestimmen, ob eine bestimmte Eigenschaft oder Variable einen Wert enthält, und wenn kein Wert vorhanden ist, wird ihr ein Wert zugewiesen. Diese treten jedoch typischerweise in langen Ketten auf und sind etwas unhandlich.Leistung von Inline-Null-Check vs If-Block?
Gibt es einen signifikanten Kopf oder Nachteil etwas wie folgt zu ersetzen:
if (memo.DateTime == null)
{
memo.DateTime = DateTime.Now;
}
if (memo.dtoDate == null)
{
memo.dtoDate = DateTimeOffset.Now;
}
mit diesem:
memo.DateTime = memo.DateTime ?? DateTime.Now;
memo.dtoDate = memo.dtoDate ?? DateTimeOffset.Now;
Benchmark es. Zeit jede in einer Schleife (10.000 Iterationen) und sehen, welche ist am schnellsten. Ich wäre überrascht, wenn Sie einen signifikanten Unterschied finden könnten. – ChrisF
[Rennen Sie Ihre Pferde] (http://ericlippert.com/2012/12/17/performance-rant/) –
Ich denke, meine Hauptfrage ist, wenn es einen Grund gibt, sollte ich nicht die zweite Methode verwenden. Ich habe noch nie solche Selbsteinsätze gesehen, wie sie im Produktionscode verwendet werden, und es schien einfach so eine offensichtliche Lösung zu sein. –