C#基础进阶

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

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/extension-methods

(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://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions

表达式树

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)。

https://docs.microsoft.com/zh-cn/dotnet/standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap

"async"和"await"关键字

https://www.cnblogs.com/powertoolsteam/p/async.html

相关推荐
休息一下接着来7 分钟前
C++ I/O多路复用
linux·开发语言·c++
FAREWELL000757 分钟前
Unity学习总结篇(1)关于各种坐标系
学习·unity·c#·游戏引擎
编程乐趣22 分钟前
一个可拖拉实现列表排序的WPF开源控件
开源·c#·.net·wpf
代码狂人1 小时前
Lua中使用module时踩过的坑
开发语言·lua
繁依Fanyi1 小时前
ColorAid —— 一个面向设计师的色盲模拟工具开发记
开发语言·前端·vue.js·编辑器·codebuddy首席试玩官
易只轻松熊1 小时前
C++(23):容器类<vector>
开发语言·数据结构·c++
Lu Yao_2 小时前
用golang实现二叉搜索树(BST)
开发语言·数据结构·golang
沐土Arvin2 小时前
前端图片上传组件实战:从动态销毁Input到全屏预览的全功能实现
开发语言·前端·javascript
找不到、了2 小时前
Spring-Beans的生命周期的介绍
java·开发语言·spring
Risehuxyc3 小时前
备份C#的两个类
c#