При тестировании Visual Studio 2015 RC я получил ошибку во время выполнения предыдущего рабочего кода. Учитывая lambda (x => x.CustomerStatusID == CustomerStatuses.Active)
, который был передан функции как Expression<>
, отладчик показывает разницу в дереве выражений. Раньше он составлялся следующим образом:
.Lambda #Lambda1<System.Func`2[Services.DataClasses.CustomerDC,System.Boolean]>(Services.DataClasses.CustomerDC $x)
{
(System.Int32)$x.CustomerStatusID == 0
}
Но в С# 6.0 он теперь компилируется как
.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)
}
Хотя исправление для моего кода для перемещения по дереву было простым, и дополнительная деталь оценивается, кто-нибудь знает о каких-либо других шагах, плавающих вокруг, как это?
В качестве альтернативы, есть ли у кого-нибудь ссылка на информацию о специфике улучшения разрешения перегрузки? Я не могу найти.