2010-09-15 101 views
0

可以说我有:表达式树的创建和ExpressionTree转换类型

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

现在我知道,int.parse(txtage.text)是ExpressionType.Convert

现在我想知道如何创建类型的表达式类型的表达式ExpressionType.Convert手动(编程)

为什么?

因为层,改变它的类型之间的IM传递表情,我设法让一个访问的每一个表情和重建它除了

情况下ExpressionType.Convert:

什么想法?提前致谢。

回答

4

不,int.Parse(txtage.text)是一个方法调用,而不是一个转换表达式。你会使用Expression.Call来构建它。

但是,如果您要想要建立转换表达式,请使用Expression.Convert

+0

实际上,lambda表达式被转换为x =>(Convert(x.age)== Convert(Convert(Parse(value(type).ddlage.text)))) – Stacker 2010-09-15 12:55:59

+0

所以我得到它抓住的情况下ExpressionType。转换: – Stacker 2010-09-15 12:57:10

+0

@Stacker:你没有告诉我们任何涉及的类型...是'x.age'不是int吗? – 2010-09-15 13:08:11