代表,Lambdas,Action,Func,匿名函数

我只想validation我对以下内容的理解

  • 委托 – 方法签名
  • Lambdas – 匿名函数
  • 匿名函数 – 就是这样
  • 操作 – 不返回任何内容的匿名函数
  • Func – 一个返回某些东西的匿名函数

嗯…他们都做类似的事情,你如何定义和知道何时使用每个?

对不起,我不好解释

  • 委托 – 它不是方法签名。 It is a type which encapsulates a method 。 因此,委托声明应该具有类似于它想要封装的方法的签名。 When to use Delegate - whenever you want to pass a method to another function. 有关更多信息,请参阅此内容 。

  • Lambdas – 简写和写作匿名函数的表达方式。 但还有更多。 lambda表达式也可以转换为表达式树。 有关更多信息,请参阅

  • 匿名函数 – 是的……就是这样

  • Action – 它是一个委托,它可以封装一个不返回任何内容的函数。 因此,您应该将其视为a type that can encapsulate an action并在需要传递操作时使用它。

  • Func – 可以封装返回某些内容的函数的委托。 但是你应该将它看作a type that can encapsulate a transformation并在你希望传递转换时使用它。

Action和Func只是Delegate的特例。 委托本身是引用方法的东西,可用于调用它。

不要试图看到C#+这些function。 还因为对你的问题没有严格务实的答案。

从function编程的角度出发,例如尝试学习F#以了解内部使用什么以及何时使用lambda(实际上在函数式语言中的所有位置),然后您将更好地理解事物。

它将打开你的思维,让你对命令式编程或C#等混合语言有不同的看法。