如果你有这种类型Func<bool,bool>
参数的函数,我知道这可以是一个函数,它有一个bool
类型的参数,也会返回bool
。
我看到人们像这样传递lambda:(x => x)
,这是什么意思?如何将其转化为正常功能?
答案 0 :(得分:5)
可以与这种常规方法进行比较:
public bool SomeMethod(bool x)
{
return x;
}
实际上它返回了提供给lambda表达式的相同变量。
答案 1 :(得分:1)
如果你看一下lambda表达式MSDN文档,它会说:
lambda表达式 x =&gt; x * x 指定名为x的参数 并返回x平方的值。您可以将此表达式指定给 代表类型。
要将其转换为普通功能,您可以将其编写为:
public bool MethodName(bool x)
{
return x;
}
答案 2 :(得分:1)
Func<bool,bool>
| |
input |
output
相当于
public bool Foo(bool bar)
{
return bar; // do something with bar
}
您还可以有许多输入参数,例如
Func<bool, bool, bool>
| | |
input1 input2 |
output
相当于
public bool Foo(bool foo, bool bar)
{
return foo && bar; // do something with foo and bar
}
如果您的输出只是void
,则可以使用Action<T>
Action<bool, bool, bool>
| | |
input1 input2 input3
相当于
public void Foo(bool foo, bool bar, bool foobar)
{
this.result = foo && bar && foobar; // do something with foo and bar and foobar
// ouch! no return because it's a void
}