C#新语法进阶委托泛型LinqLambda表达式

时间:2022-10-28 14:59:00

学习C#开发的程序员们,相信大家也有自己的困惑。C#对于我们来说,一会很熟悉,一会很陌生,当你熟悉的时候,你阅读源码能一目十行,当你很陌生的时候,你十天能看懂一行代码。我们总是伴着梦,一路追寻,一路奔波。确时常忽略了,原来他也在成长。

C#(读作“See Sharp”)源于C语言系列,是一种新式编程语言,不仅面向对象,还类型安全 开发人员可以利用 C# 能够生成在 .NET 中运行的多种安全可靠的应用程序,如果你想从事开发,那么C#绝对可以作为你的首选编程语言,为什么这么说,我们可以接着往下看。如果你已经走在从事编程的路上,也可以看看,或许有不一样的收获。如果你时常感受到曾经熟悉的代码而又变得那么的陌生,那么此时的您更需要这篇文章。

时代在发展,科技在进度,市场的需求每时每刻都在变化,为了解决或者满足市场的需求,作为编程开发的语言,也在不断的变化当中,这种变化,源于时代的需求,市场的需要。源源不断的注入新的语法。正式因为这样,你才会感受到他曾经那么的熟悉,而今天又那么的陌生。

我们先来看其中的一部分,也是工作中时常用到的几个点。

委托作为首先,我们知道委托从.NetFramework 1.0 到 4.7 ,以及到现在的.netcore 中都一直存在。由此可以看出他足够的重要。

“委托定义类型,类型指定特定方法签名“,晕了,这句话看不懂。那就不妨看下案例吧。

C#新语法进阶委托泛型LinqLambda表达式

如果你还看不懂,也没关系,博文的最后,有详细的介绍。

其次是lambda表达式,我们知道在C#2.0之前就有委托了,在2.0之后又引入了匿名方法,

在 C#3.0 之后,又引入了 Lambda 表达式,他们三者之间的顺序是: 委托->匿名方法->Lambda 表达式,微软的一步步升级,带给我们编程上的优美,简洁,可读性强。

C#新语法进阶委托泛型LinqLambda表达式

第三就是泛型,特别是在.netcore中应用更广泛,因为使用泛型类型可以最大限制的重用代码,保护类型安全性以及提高性能。 

C#新语法进阶委托泛型LinqLambda表达式

第四个就是linq,为什么要使用 linq,我们先来看一个问题。这个问题也是我们经常用到的。 需求就是:我们从一个整型类型的数组中,寻找偶数集合。

实现方式1:用原始的实现方式 foreach,肯定可以实现。

实现方式2:用委托来实现 用我们之前的委托方式也可以实现。

在 c# 3.0 中,引入了扩展方法,lambda 表达式,匿名类型等新特性,这些新特性是 linq 的前提。那么我们可以使用这些新特性来实现 上面的问题。Linq 可以用来查询不同类型的集合。并返回需要的结果。此实现方式3。

Linq 是 Language Integrated query 即 语言集成查询。

Linq 是一组语言特性和 API,使得你可以使用统一的方式编写各种查询。用于保存和检索来自不同数据源的数据。从而消除了编程语言和数据库之间的匹配。以及为不同类型的数据源提供单个查询接口。总之linq有着非常广泛的应用。

第五个就是反射,相信很多的程序员都听说过,无论你是java还是c#开发者。反射提供描述程序集、模块和类型的对象(​Type​ 类型)。 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后调用其方法或访问器字段和属性。 如果代码中使用了特性,可以利用反射来访问它们。

第六个就是特性,使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。

C#新语法进阶委托泛型LinqLambda表达式

C#新语法进阶委托泛型LinqLambda表达式


C#新语法进阶委托泛型LinqLambda表达式

总结:到目前为止呢,我们就总结了上述几个技术要点,也是工作中经常用到的。如果你对这些还不是很熟悉,不妨进一步学习一下。如果你对此有不一样的简介,欢迎热评,作为从事技术的人,相信大家都是热爱这个行业的,也希望您将这份爱心继续传递。

到今天从微软的官方文档来看c#已经更新到C#11了, 每一个版本中都增加了很多的新功能。如果有一天你没有学习,前辈们将这些新语法应用到了源码中,我们是不是又回到了那个曾经熟悉而又陌生的代码里。

为了筑梦,我们一路追寻,一路奔波。


​点击这里了解更多​