C# Func与lambda问题

C# Func与lambda问题,c#,.net,C#,.net,我有一份健康声明 void Test (Func<bool> f) 无效测试(Func f) 我有一个类似于boolgetitem(stringid) 我可以调用像Test(()=>getItem(“123”),为什么 我想我可以检查我需要一个字符串参数 因为Test的签名要求参数是一个不带参数且返回布尔值的方法。Func需要一个返回布尔值的函数Func有一个输出参数,然后Func接受一个具有输入T1和输出T2的函数。每个后续版本都允许添加一个输入参数,最终的泛型类型是输出参数的

我有一份健康声明

void Test (Func<bool> f)
无效测试(Func f)
我有一个类似于
boolgetitem(stringid)

我可以调用像
Test(()=>getItem(“123”)
,为什么


我想我可以检查我需要一个字符串参数

因为Test的签名要求参数是一个不带参数且返回布尔值的方法。

Func
需要一个返回布尔值的函数
Func
有一个输出参数,然后
Func
接受一个具有输入T1和输出T2的函数。每个后续版本都允许添加一个输入参数,最终的泛型类型是输出参数的类型

例如:
Func
将能够调用
booldostuff(字符串s1,字符串s2)


快速编辑以澄清:Test(()=>getItem(“123”)之所以有效,是因为lambda声明的开头没有公开任何输入参数,而getItem返回一个布尔值。

您的方法测试被定义为使用
Func
的参数,该参数需要类似于
bool Something()

查看其他
Func
选项,查看与您试图实现的目标相匹配的选项。至少你看到的是或