表达式<func <t,object =“”>&gt;的通用拆箱表达式<func <t,tresult =“”>&gt; </func <t,> </func <t,>

时间:2013-12-23 13:30:43

标签: c# generics

如标题中所述,我有一个表达式,结果类型“存储”在object中,可以全部我的域类。有没有办法得到具体的表达方式(拆箱)?

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题,那么你可能正在寻找的是Expression.Convert

Expression<Func<T,object>> original = // ... something
Expression<Func<T,TResult>> converted = Expression.Lambda<Func<T,TResult>>(
        Expression.Convert(original.Body,typeof(TResult)), 
        original.Parameters);

Demo on ideone.