C# 什么';lambda表达式的数据类型是什么?

C# 什么';lambda表达式的数据类型是什么?,c#,lambda,types,C#,Lambda,Types,我有一个小问题,我自己搞不清楚,lambda表达式的数据类型是什么: x=>x>0 我希望你能帮我。这只是一个函数,其中T是x的类型 通常,Func是方法的预定义委托类型之一,该方法接受类型为T(x)的一个参数,并返回类型为TResult(bool)的一些值 更多信息Lambda表达式没有确定的类型。lambda表达式可以隐式转换为委托类型或表达式类型 你可以找到更多信息 请注意,lambda表达式本身没有类型,因为公共类型系统没有“lambda表达式”的内在概念。但是,非正式地说“类型”有时是

我有一个小问题,我自己搞不清楚,lambda表达式的数据类型是什么:
x=>x>0

我希望你能帮我。

这只是一个
函数,其中
T
x
的类型

通常,
Func
是方法的预定义委托类型之一,该方法接受类型为
T
x
)的一个参数,并返回类型为
TResult
bool
)的一些值


更多信息

Lambda表达式没有确定的类型。lambda表达式可以隐式转换为委托类型或表达式类型

你可以找到更多信息

请注意,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;
谓词=x=>x>0;
Func Func=x=>x>0;
表达式=x=>x>0;

可能想读取它的
Func
在您的案例中
Func
其中
bool
是返回类型,
int x
是输入,但整个事件的数据类型是什么?请注意,参数和返回类型甚至不一定是
int
bool
。例如,0是隐式可转换的e到所有枚举类型,而
Func
也同样有效。或者,可以使用小于运算符重载定义一个自定义类型,该重载返回除bool以外的内容。还值得考虑一个表达式,如
x=>x.Length>0
。这里x可以是任何数组类型或字符串,也可以是任何具有属性长度的类型。