2

我在 C# 中使用了很多 lambdas(多种风格的 LINQ、ASP.NET MVC 中的强类型助手、AutoMapper API 等),但我无法在自己的代码中开始使用 C# 功能特性,因为我不能弄清楚我可以用它们做什么很酷的事情。我大部分时间都直观地使用它们。

是否有关于此的任何参考或快速(但完整)指南。我不是在寻找 MSDN 参考,而是为了快速解释 C# 所有功能特性作为一个整体。如果可以将其范围缩小为包含一些博客文章链接的列表——这也是可以接受的。

问题结束后更新:似乎我的长解释不清楚,所以我会尝试缩小范围:我需要一个可以用来编写自己的代码的概念列表(不使用其他 API)。接受的答案是我需要的,谢谢。

4

2 回答 2

5

这是一篇很好的 CodeProject 文章,它解释了 C# 中引入的功能特性。它还为每个功能提供了易于理解的示例:

C# 中的函数式编程

文章提供了函数和一等值的解释和示例:

  • 函数类型 - 委托、通用函数类型、谓词、动作
  • 函数值 - 存储和传递函数作为参数
  • 函数算术 - 加减函数

在那之后,文章讨论了 C# 中的函数式编程,涵盖了以下几点:

  • 使用函数创建泛型结构
  • 使用 LINQ
  • 高阶函数——处理其他函数的函数,函数组合
  • 异步函数 - 解释BeginInvokeIsCompletedEndInvoke和使用带有回调的异步函数
  • 元组 - 动态数据结构
  • 闭包 - 解释了委托和 lambda 函数中变量的范围,还解释了共享数据和缓存
  • 使用高阶函数递归
  • 偏函数 - 使用默认值减少函数参数的数量
  • Curry 函数 - 将 N 个参数函数分解为 N 个单参数函数
于 2012-06-10T07:10:39.350 回答
0

只是添加到 Ove 链接的文章中,因为我没有看到明确涵盖该方面:

函数式构造的使用允许将执行顺序与编写代码的顺序分开。这是因为调用定义的 lambda 可能发生在程序知道 lambda 的时间以外的某个时间。

这有时可能有点不直观(LINQ 中的延迟执行),但通常可以让您自由地将相关代码保持在一起,即使它在不同时间运行。

于 2012-06-10T07:21:50.007 回答