我经常在 C# 中使用 lambda(多种风格的 LINQ、ASP.NET MVC 中的强类型助手、AutoMapper API 等),但我无法开始在我自己的代码中使用 C# 函数特性,因为我无法弄清楚我可以用它们做什么很酷的事情。我大部分时间都凭直觉使用它们。
是否有关于此的任何引用或快速(但完整)指南。我不是在寻找 MSDN 引用,而是为了快速解释 C# 的所有功能特性作为一个整体。如果可以将其缩小为包含几个博客文章链接的列表,那也是可以接受的。
问题关闭后更新:看来我的长解释不清楚,所以我会尽量缩小范围:我需要一个概念列表,我可以用它来编写自己的代码(不使用其他人的 API)。接受的答案是我需要的,谢谢。
这是一篇很好的 CodeProject 文章,解释了 C# 中引入的功能特性。它还为每个功能提供了易于理解的示例:
Functional programming in C#
文章提供了函数和一等值的解释和示例:
- 函数类型 - 委托(delegate)、通用函数类型、谓词、 Action
- 函数值——存储和传递函数作为参数
- 函数算术——加减函数
之后,文章讨论了 C# 中的函数式编程,涵盖了以下几点:
- 使用函数创建通用结构
- 使用 LINQ
- 高阶函数——处理其他函数、函数组合的函数
- 异步函数 - 解释
BeginInvoke
、IsCompleted
、EndInvoke
以及使用带回调的异步函数
- 元组 - 动态数据结构
- 闭包 - 解释委托(delegate)和 lambda 函数中的变量范围,还解释共享数据和缓存
- 使用高阶函数递归
- 部分函数 - 使用默认值减少函数参数的数量
- Curry 函数 - 将 N 个参数函数分解为 N 个单参数函数