2010-09-15 3 views
0

позволяет сказать, что у меня есть:Expression Tree Создание и ExpressionTree Преобразование типа

anything.where(x=>x.age == int.parse(txtage.text)); 

теперь я знаю, что int.parse(txtage.text) является выражением типа ExpressionType.Convert

теперь я хочу знать, как создать выражение типа ExpressionType.Convert вручную (программно)

Почему?

, потому что им выражение между попутными слоями и изменениями типа этого, мне удалось сделать посещение каждого выражение и восстановить его только для

случае ExpressionType.Convert:

любой идея? заранее спасибо.

ответ

4

No, int.Parse(txtage.text) - вызов метода, а не выражение преобразования. Вы построили его с помощью Expression.Call.

Однако, если вы do хотите построить выражение преобразования, используйте Expression.Convert.

+0

Фактически это выражение лямбда преобразуется в x => (Преобразовать (x.age) == Преобразовать (Преобразовать (анализ) (значение (тип) .ddlage.text)))) – Stacker

+0

, поэтому я получаю его в случае ExpressionType. Convert: – Stacker

+0

@Stacker: Ну, вы не сказали нам ни одного из связанных с этим типов ... is 'x.age' не int? –

Смежные вопросы