C#中Func和Expression的区别

LINQ中IEnumerable<T>的where接受的是Func,但是IQueryable<T>接受的是Expression。

区别在于Func直接会被编译器编译成IL代码,但是Expression只是存储了一个表达式树,在运行期作处理。比如在LINQ TO SQL的时候就可以把这个表达式树变成sql语句。

可以调用Expression的Compile方法,把一个Expression编译成一个Func,反之则没有,不能把一个Func转换成Expression。

转载于:https://www.cnblogs.com/fresky/archive/2013/02/24/2924172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值