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
}