首页新闻招聘找找看知识库

请问这句代码是什么意思

0
悬赏园豆:10 [已解决问题]

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

 

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

 

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

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

你这段代码没拷全!?

收获园豆:10
Daniel Cai | 大侠五级 |园豆:8406 | 2017-11-14 20:14

烤全了 就这样。

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

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

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

Daniel Cai | 园豆:8406 (大侠五级) | 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 | 园豆:109 (初学一级) | 2017-11-15 10:19

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

Daniel Cai | 园豆:8406 (大侠五级) | 2017-11-15 10:29

@Daniel Cai: 嗯 ,谢谢你哦。

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

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

春風 | 园豆:62 (初学一级) | 2017-11-15 09:20
0

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

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

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

猝不及防 | 园豆:589 (小虾三级) | 2017-11-15 10:51
   您需要登录以后才能回答,未注册用户请先注册