Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何掌握所有C#功能特性?_C#_Linq_Lambda - Fatal编程技术网

如何掌握所有C#功能特性?

如何掌握所有C#功能特性?,c#,linq,lambda,C#,Linq,Lambda,我在C#中使用了很多lambdas(很多风格的LINQ,ASP.NET MVC中的强类型助手,AutoMapper API等等),但我不能在自己的代码中开始使用C#函数特性,因为我不知道我可以用它们做什么很酷的事情。我大部分时间都凭直觉使用它们 有没有关于这方面的参考或快速(但完整)指南。我不是在寻找MSDN参考资料,而是寻找对C#所有功能特性作为一个整体的快速解释。如果可以缩小范围,列出一些博客文章的链接,这也是可以接受的 问题结束后更新:似乎我的长篇大论解释不清楚,所以我将尝试缩小范围:我需

我在C#中使用了很多lambdas(很多风格的LINQ,ASP.NET MVC中的强类型助手,AutoMapper API等等),但我不能在自己的代码中开始使用C#函数特性,因为我不知道我可以用它们做什么很酷的事情。我大部分时间都凭直觉使用它们

有没有关于这方面的参考或快速(但完整)指南。我不是在寻找MSDN参考资料,而是寻找对C#所有功能特性作为一个整体的快速解释。如果可以缩小范围,列出一些博客文章的链接,这也是可以接受的


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

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

本文提供了函数和一级值的解释和示例:

  • 函数类型-委托、泛型函数类型、谓词、操作
  • 函数值-存储和传递函数作为参数
  • 函数算术-加减函数
之后,本文将讨论C#中的函数式编程,包括以下几点:

  • 使用函数创建泛型构造
  • 使用LINQ
  • 高阶函数-处理其他函数的函数,函数组合
  • 异步函数-解释
    BeginInvoke
    IsCompleted
    EndInvoke
    ,以及将异步函数与回调一起使用
  • 元组-动态数据结构
  • 闭包-解释委托和lambda函数中变量的范围,还解释共享数据和缓存
  • 使用高阶函数的递归
  • 分部函数-使用默认值减少函数参数的数量
  • Curry函数-将N个参数函数分解为N个单参数函数

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

使用函数构造可以将执行顺序与代码编写顺序分开。这是因为调用定义的lambda可能发生在程序了解lambda的时间之外的其他时间


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

使用它们。是的。这就是诀窍。这个问题有点像询问如何使用双腿的完整指南。主题广阔,可能性无穷……如果你还没有这样做,请使用。遵循这些建议,你会学习。好文章,看起来是一个好的开始,在这篇文章中,请考虑添加一个总结(例如,主要概念/结构的子弹)和/或相关的摘录“裸链接”作为评论更好。