Я нашел такой отчет о запрещении отбрасываний в деревьях выражений: https://github.com/dotnet/roslyn/issues/20380, и действительно, они не разрешены. Но мне интересно - почему ?
В конце концов, чтобы избежать этой ошибки, нужно ввести фиктивную переменную, передав ее в качестве аргумента out
, и все. Точно такой же шаблон ручного отбрасывания out
, как и до введения отбрасывания.
Так почему же деревья выражений настолько особенные, что отбрасывание здесь нельзя использовать?