C#基础进阶
泛型
http://www.runoob.com/csharp/csharp-generic.html
匿名函数
http://www.runoob.com/csharp/csharp-anonymous-methods.html
扩展方法
https://blog.csdn.net/u011127019/article/details/54728886
(1)如果扩展方法与该类型中定义的方法具有相同的签名,则扩展方法永远不会被调用。
(2)扩展方法不能和调用的方法放到同一个类中
(3)第一个参数必须要,并且必须是this,这是扩展方法的标识。如果方法里面还要传入其他参数,可以在后面追加参数
(4)扩展方法所在的类必须是静态类
Where, LINQ , IEnumerable, IQueryable
委托(Delegate)
http://www.runoob.com/csharp/csharp-delegate.html
C#内置的委托
Action、Action<T>、Func<T>、Predicate<T>
https://www.cnblogs.com/maitian-lf/p/3671782.html
lambda表达式
(参数) => {操作}
Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数
https://blog.csdn.net/ylbs110/article/details/50741123
表达式树
https://blog.csdn.net/wlk1229/article/details/80012079
System.Linq.Expressions
Expression<Func<int, int,bool>> fun = (x, y) => x < y
推荐书籍: 《深入理解C#》
基于任务的异步模式 (TAP)
C#异步编程模式
https://blog.csdn.net/kebi007/article/details/76899078
.NET Framework提供了执行异步操作的三种模式:
<不再推荐>异步编程模型(APM)模式(也称为IAsyncResult的模式),其中异步操作要求Begin和End方法(例如,BeginWrite和EndWrite异步写入操作)。这种模式不再被推荐用于新的开发。
<不再推荐>基于事件的异步模式(EAP),它需要一个具有Async后缀的方法,并且还需要一个或多个事件,事件处理程序委托类型和被EventArg派生类型。EAP在.NET Framework 2.0中引入。不再推荐用于新的开发。
基于任务的异步模式(TAP)
它使用单一方法来表示异步操作的启动和完成。TAP在.NET Framework 4中引入,是.NET Framework中推荐的异步编程方法。C#中的async和等待关键字,Visual Basic语言中的Async和Await运算符为TAP添加语言支持。有关更多信息,请参阅基于任务的异步模式(TAP)。