首页 新闻 会员 周边 捐助

请问这句代码是什么意思

0
悬赏园豆:10 [已解决问题] 解决于 2017-11-15 10:52

看到linq 的时候  看到这么一句代码

 

public static Expression<Func<T, bool>> True<T>() { return param => true; }

 

大括号里的方法体看不懂具体是啥意思? 如何演变过来的呢。感谢!

Allen_Chang的主页 Allen_Chang | 初学一级 | 园豆:101
提问于:2017-11-14 20:00
< >
分享
最佳答案
0

你这段代码没拷全!?

收获园豆:10
Daniel Cai | 专家六级 |园豆:10424 | 2017-11-14 20:14

烤全了 就这样。

Allen_Chang | 园豆:101 (初学一级) | 2017-11-15 09:23

@Allen_Chang: 这只是一个方法,返回一个表达式树Expression,在compile后就变成了一个Func<T,bool>的委托方法。

比如True<int>().Compile().(100);

Daniel Cai | 园豆:10424 (专家六级) | 2017-11-15 10:10

@Daniel Cai: 先谢谢,我知道,我只是不太明白  return  param => true 这想表达啥。

举个能一目了然的例子  

Expression<Func<int, bool>> ex = x=>x < 100  这是表达式写法

或者 Expression<Func<int, bool>> ex = x=>{return x < 100}  这是表达语句写法  一个意思

Func<int, bool> func = ex.Compile(); 

func(50)  结果为true

func(101)  结果为false

Allen_Chang | 园豆:101 (初学一级) | 2017-11-15 10:19

@Allen_Chang: 单纯这个是没意义的,我感觉可能是某些地方需要这种无逻辑的表达式,比如对应为while(true)的代码

Daniel Cai | 园豆:10424 (专家六级) | 2017-11-15 10:29

@Daniel Cai: 嗯 ,谢谢你哦。

Allen_Chang | 园豆:101 (初学一级) | 2017-11-15 10:52
其他回答(3)
0

-> 这个是Lambda表达式 不知道是不是你打错了?

山抹微云君^^ | 园豆:474 (菜鸟二级) | 2017-11-15 09:20
0

return param => true;  意思是对param赋值为true

金琥 | 园豆:2605 (老鸟四级) | 2017-11-15 09:24
0

本来我是不懂得,看了楼上几位大神我懂了

猝不及防 | 园豆:2878 (老鸟四级) | 2017-11-15 10:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册