Beim Ausprobieren von Visual Studio 2015 RC wurde ein Laufzeitfehler für zuvor funktionierenden Code angezeigt. Angesichts des Lambda (x => x.CustomerStatusID == CustomerStatuses.Active)
, das an eine Funktion als übergeben wurde Expression<>
, zeigt der Debugger einen Unterschied im Ausdrucksbaum. Früher wurde es so zusammengestellt:
.Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x)
{
(System.Int32)$x.CustomerStatusID == 0
}
Aber in C # 6.0 wird es jetzt als kompiliert
.Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x)
{
(System.Int32)$x.CustomerStatusID == (System.Int32).Constant<Services.DataClasses.CustomerStatuses>(Active)
}
Obwohl die Korrektur meines Code zum Durchlaufen von Bäumen unkompliziert war und das zusätzliche Detail geschätzt wird, kennt jemand andere Fallstricke, die so herumschwirren?
Hat jemand einen Link zu Informationen darüber, wie die Überlastungsauflösung verbessert wurde? Ich kann keine finden.