C# 什么';lambda表达式的数据类型是什么?
我有一个小问题,我自己搞不清楚,lambda表达式的数据类型是什么:C# 什么';lambda表达式的数据类型是什么?,c#,lambda,types,C#,Lambda,Types,我有一个小问题,我自己搞不清楚,lambda表达式的数据类型是什么: x=>x>0 我希望你能帮我。这只是一个函数,其中T是x的类型 通常,Func是方法的预定义委托类型之一,该方法接受类型为T(x)的一个参数,并返回类型为TResult(bool)的一些值 更多信息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可以是任何数组类型或字符串,也可以是任何具有属性长度的类型。