От the documentation, и из его имени подразумевается, что значение свойства CanReduce
должно быть установлено равным true для всех выражений, которые можно разложить на более мелкие выражения, и наоборот.Что означает свойство System.Linq.Expressions.Expression.CanReduce?
Но при более близком наблюдении этот вывод кажется недействительным во всех случаях. Возьмите случай LambdaExpression
, который, безусловно, представляет собой составной блок. Но класс LambdaExpression
, полученный непосредственно из класса Expression
, не переопределяет свойство CanReduce
. Класс Expression
определяет свойство CanReduce
как виртуальное с реализацией, которая возвращает false
, что подразумевает, что выражение лямбда еще не приводится к сокращению, что неверно.
В чем же смысл этого свойства?
Например, составное назначение 'a + = b' можно свести к' a = a + b'. – PetSerAl
Ницца. Спасибо. Является ли смысл ограниченным только этими операторами (я забыл, что они называются)? –
Я не углубляюсь в 'System.Linq.Expressions', чтобы сказать, что это правда или нет. – PetSerAl