我有一个小问题,我只是想不通自己,这样的lambda表达式的数据类型是什么:
x => x>0
我希望你能帮助我。
答案 0 :(得分:4)
这只是一个Func<T, bool>
,其中T
是x
的类型。
通常,Func<T, TResult>
是一种方法的预定义委托类型之一,该方法接受类型为T
(在您的情况下为x
)的一个参数并返回类型为{ {1}}(在您的情况下为TResult
)
更多信息here
答案 1 :(得分:4)
Lambda表达式没有确定的类型。可以将lambda表达式隐式转换为委托或表达式类型。
您可以找到更多信息here
”请注意,lambda表达式本身没有类型,因为通用类型系统没有“ lambda表达式”的内在概念。但是,有时非正式地谈论lambda表达式的“类型”有时很方便。在这些情况下,类型是指将lambda表达式转换为的委托类型或表达式类型。“
对于您的特定示例,可以为lambda分配一些类型:
Predicate<int> predicate = x => x > 0;
Func<int, bool> func = x => x > 0;
Expression<Func<int, bool>> expression = x => x > 0;