C# 翻译匿名函数
如果函数的参数类型为C# 翻译匿名函数,c#,lambda,C#,Lambda,如果函数的参数类型为Func,我知道这可能是一个函数,它有一个bool类型的参数,并返回一个bool 我看到人们像这样经过这里:(x=>x),这是什么意思?如何将其转换为正常功能?可以将其与此常规方法进行比较: public bool SomeMethod(bool x) { return x; } 实际上,它返回的变量与提供给lambda表达式的变量相同。如果查看lambda表达式文档,它会说: lambda表达式x=>x*x指定一个名为x的参数 并返回x平方的值。可以将此表达式指定
Func
,我知道这可能是一个函数,它有一个bool
类型的参数,并返回一个bool
我看到人们像这样经过这里:
(x=>x)
,这是什么意思?如何将其转换为正常功能?可以将其与此常规方法进行比较:
public bool SomeMethod(bool x)
{
return x;
}
实际上,它返回的变量与提供给lambda表达式的变量相同。如果查看lambda表达式文档,它会说: lambda表达式x=>x*x指定一个名为x的参数 并返回x平方的值。可以将此表达式指定给 委托类型 要将其转换为普通函数,您可以将其编写为:
public bool MethodName(bool x)
{
return x;
}
您还可以有许多输入参数,例如
Func<bool, bool, bool>
| | |
input1 input2 |
output
如果您的输出只是
void
,您可以使用操作
…但我看到有人经过这里
。有一天你会看到Func-fn=()=>true
:-)@xanatos:这是非常true
@kosnkov-No,Func
,没有总是返回true
:-)的参数,而这个Func=()=>9
就是Dilbert的随机数生成器:(至少从Dilbert的角度来看)@kosnkov:a操作
不会返回任何内容。这是一个不接受任何参数并返回bool
的方法。
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
}
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
}