您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > C/C++/C#

C#中的高级语法

时间:2020-08-07 10:33:10  来源:  作者:

前言:通过学习,然后分享自己学到的知识,仅仅只是为了更深一步的理解,希望各位童靴在看到文章能够给出你宝贵的意见;文章的编辑的确很烂,毕竟老师说过我语言水平很刺耳!

正文:什么是lambda表达式?

>lambda表达式其实就是一个用来代替委托实例的未命名方法;

>编译器会把lambda表达式转化为以下二者之一:

一个委托实例

一个表达式树(expression tree),类型是Expression(TDelegate),它表示了可遍历的对象模型中Lambda表达式里面的代码。它允许lambda表达式延迟到运行时再被解释。

|高级语法

首先我们写一个简单的语法快,如下下所示

C#中的高级语法,你会吗?

 

接下来我们使用=>将上述方法简化

C#中的高级语法,你会吗?

 

如上所示我们使用=>运算符隐式转化为方法的主体返回方法,最后解释为第一种写法;

上述栗子我们简单了解了一下lambda表达式的使用,接着我们一起来看看=>的更深的理解;

C#中的高级语法,你会吗?

 

lambda经常和委托一起使用,所以我们首先声明了一个委托类型,接着又声明了一个委托变量tra,tra后面的x就是委托类型的参数=>后面就是一个lambda表达式,最终我们将结果输出等于9。到这里我们不难看出lambda表达式的书写形式(参数)=>(表达式语句块),这里需要注意一点,如果只有一个参数并且类型可以推断的话,那么参数的小括号可以省略。

上面已经说了lambda表达式和委托一起使用,那怎么少的了Func和Action委托,废话不多说我们一起来看看下面的栗子。

C#中的高级语法,你会吗?

 

上面我们了声明了两个func委托,我们先来看第一个,这个func委托第一个int是参数,第二个int为返回类型,x为参数,x*x为表达式,最后我们输入结果为36。接着我们看第二个两个string表示两个参数,int为返回类型,前面我们刚刚说过一个参数..,那么参数后面的括号可以省略,所以第二个func委托需要添加括号,接着后面表达式语句块很好理解,直接看输入等于10,两个输出完全正确,看到这里各位小伙伴肯定对lambda有了更深的认识,实在没懂点个赞看着文章敲一遍就行啦!

说到这里有个小问题,开个玩笑,怎么会呢,我怎么会那么不要脸的求关注呢,就算没有我也会继续与大家共同学习下去。回到正题,有时候呢,lambda表达式有参数,但是呢这个参数推断不出来,这个时候就需要我们的显示指定lambda表达式的参数类型了,直接看例子,我觉得废话太多了

C#中的高级语法,你会吗?

错误,提示无法从中推断出...的类型

上面我们定义了两个泛型方法Foo和Bar,T是Foo这个泛型类型的参数,Action<T>是 Bar的类型参数,下面一个方法,我们想用lambda表达式调用Bar,这个时候lambda表达直接调用报错,所以我们用了以下两种方法显示的置定它的类型:

C#中的高级语法,你会吗?

 

欧克,这个时候显示正确,我为它置定了类型int,成功;这期就到这里结束,虽然说得知识很少,但码字太累了,下期会说一下,捕获外部变量和被捕获的变量,以及lambda表达式内的本地变量,感谢大家的观看,别忘了点个赞,或者有宝贵的意见请留在评论区我会一一回复,谢谢大家,下期再见!



Tags:C#   点击:()  评论:()
声明:本站部分内容来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
前面有几篇文章,已经教了一些方式或者方法,帮助您摆脱娘胎自带的面向过程编程,从而转为面向对象。本文讲一下面向对象依赖倒置,使用具体的例子来解释可能好些,网上千篇一律的大多...【详细内容】
2020-11-12   C#  点击:(3)  评论:(0)  加入收藏
本文针对.net core开发环境,如何在winform和wpf等应用程序下配置数据库连接。关于如何在Core下使用DB First方式生成EF数据库代码,点击跳转原文链接。生成了数据库代码后,默认...【详细内容】
2020-11-06   C#  点击:(5)  评论:(0)  加入收藏
1.首先,打开工具箱,找到PictureBox控件 2.打开PictureBox的属性面板,设置Image属性 3.准备嵌入图片资源 ​图片资源有两个地方,一个是全局的在Properties下的Resources.resx文...【详细内容】
2020-10-23   C#  点击:(8)  评论:(0)  加入收藏
一、引入泛型在实际开发中,常常会出现重复代码的问题,例如。 运行结果这里的三个方法,使用不同的类型干了同样的事情。作为一个有追求的程序员,是绝不允许这样的事情发生的。我...【详细内容】
2020-08-26   C#  点击:(10)  评论:(0)  加入收藏
C# 8.0 向 C# 语言添加了以下功能和增强功能: Readonly 成员 默认接口方法 模式匹配增强功能: Switch 表达式 属性模式 元组模式 位置模式 Using 声明 静态本地函数 可处置的...【详细内容】
2020-08-21   C#  点击:(4)  评论:(0)  加入收藏
提起子类、基类和方法继承这些概念,肯定大家都非常熟悉。毕竟,作为一门支持OOP的语言,掌握子类、基类是学习C#的基础。不过,这些概念虽然简单,但是也有一些初学者可能会遇到的坑,...【详细内容】
2020-08-19   C#  点击:(7)  评论:(0)  加入收藏
前言:通过学习,然后分享自己学到的知识,仅仅只是为了更深一步的理解,希望各位童靴在看到文章能够给出你宝贵的意见;文章的编辑的确很烂,毕竟老师说过我语言水平很刺耳!正文:什么是l...【详细内容】
2020-08-07   C#  点击:(5)  评论:(0)  加入收藏
最近一个项目发现手机验证码总是被人盗刷,一秒钟刷了1百多个,很明显这种行为是通过软件自动提交的,自动发帖机原理类似,解决这个问题目前有两个方案。出现这个问题原因:请求手机...【详细内容】
2020-07-22   C#  点击:(4)  评论:(0)  加入收藏
有个项目需要C#环境,需安装mono环境来运行这个C#程序,这里简单记录一下一 安装mono1、下载mono安装源并解压下载地址: http://download.mono-project.com/sources/mono/wget h...【详细内容】
2020-06-22   C#  点击:(5)  评论:(0)  加入收藏
每次新项目的时候,都要从头去找一遍数据库工具类。这里分享一个简单实用的C#的通用DbHelper工具类,支持数据连接池。 连接池配置<connectionStrings>  <add name="dh_web" c...【详细内容】
2020-04-18   C#  点击:(20)  评论:(0)  加入收藏
介绍:窗体中的文字不仅可以静态地显示,也可以动态的显示效果。实现动态显示文字滚动,文字向左水平滚动 过程:1.创建window应用程序项目,默认窗体为Form1.2.在窗体中添加La...【详细内容】
2020-04-04   C#  点击:(6)  评论:(0)  加入收藏
C#语法&mdash;&mdash;委托,架构的血液本篇文章主要介绍委托的应用。委托是大家最常见的语法了,但会用与精通之间的差别是巨大的。一个程序员如果不能精通委托,那么,他永远无法...【详细内容】
2019-12-23   C#  点击:(30)  评论:(0)  加入收藏
C程序是一组函数和数据类型,就像一把锋利的随身匕首,非常灵活,在高手的手上可以幻化出各种招式,杀人于无形。C++程序是一组函数和类,像一门大炮,扛在肩上很重,炮弹打出去威力很大,但...【详细内容】
2019-12-20   C#  点击:(57)  评论:(0)  加入收藏
世界上只有少数几种语言是多功能的,而没有一个像C#那样干净整洁。...【详细内容】
2019-11-25   C#  点击:(142)  评论:(0)  加入收藏
加密解密在开发中经常用到,比如登录密码加密解密、消息传输加密解密等。但是很多人只会使用不理解其中的原理,这篇文章就带领大家快速学习加密解密的原理和使用...【详细内容】
2019-11-11   C#  点击:(42)  评论:(0)  加入收藏
今天我利用这篇文章给大家讲解一下 C# 中的序列化与反序列化。这两个概念我们在开发中经常用到,但是我们绝大部分只用到了其中的一部分,剩下的部分很多开发人员并不清楚,伸着可以说是不知道。因此我希望通过这篇文章能让...【详细内容】
2019-11-06   C#  点击:(25)  评论:(0)  加入收藏
最近在工作中遇到一项新需求,项目需要对接小程序内容安全接口,该接口可根据用户发送的请求自动检测、审核内容,主要用于过滤涉政、不健康言论和鉴别黄图。官方有三个内容安全接...【详细内容】
2019-09-05   C#  点击:(363)  评论:(0)  加入收藏
作者 | 羽生结弦责编 | 胡雪蕊出品 | CSDN(CSDNnews)在C#中的委托关键字是 Delegate,委托类似于C/C++中函数的指针。是存有对某个方法引用的引用类型变量,可在运行时被改变。一...【详细内容】
2019-08-16   C#  点击:(71)  评论:(0)  加入收藏
串口进行操作的类,其中包括写和读操作,类可设置串口参数、设置接收函数、打开串口资源、关闭串口资源,操作完成后,一定要关闭串口、接收串口数据事件、接收数据出错事件、获取...【详细内容】
2019-07-31   C#  点击:(120)  评论:(0)  加入收藏
Common.Utility比较全面的c#帮助类,各种功能性代码。网上有各式各样的帮助类,公共类,但是比较零碎,这个仓库算是做了一个集合github地址https://github.com/Jimmey-Jiang/Common...【详细内容】
2019-07-31   C#  点击:(261)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条