博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 8的Ranges和递归模式
阅读量:5898 次
发布时间:2019-06-19

本文共 979 字,大约阅读时间需要 3 分钟。

\

关键要点

\\
  • C# 8新增了Ranges和递归模式。\\t
  • 可以使用Ranges来定义数据序列,可用于替代Enumberable.Range()。\\t
  • 递归模式为C#带来了类似F#的结构。\\t
  • 递归模式是一个非常棒的功能,为我们提供了一种灵活的方式,基于一系列条件来测试数据,并根据满足的条件执行进一步的计算。\\t
  • Ranges可用于生成集合或列表形式的数字序列。\
\\

2015年1月21日是C#历史上最重要的日子之一。在这一天,C#专家Anders Hejlsberg和Mads Torgersen等人聚在一起畅谈C#的未来,并思考了这门语言应该往哪个方向发展。

\\

\\

这次会议的第一个结果是C# 7。第七个版本增加了一些新特性,并将重点放在数据消费、代码简化和性能上。针对C# 8的新提议并未改变对特性的关注,但在最终版本中可能会有所改变。

\\



\\

图1. C# 7和8的关注点

\\

在本文中,我将讨论为C# 8提议的两个新特性。第一个是Ranges,第二个是递归模式,它们都属于代码简化类别。我将通过很多示例详细地解释它们,我将向你展示这些特性如何帮助你写出更好的代码。

\\

Ranges可用于定义数据序列。它是Enumerable.Range()的替代品,只是它定义的是起点和终点,而不是起点和计数,它可以帮助你写出可读性更高的代码。

\\

示例

\\
\foreach(var item in 1..100)\{\  Console.WriteLine(item);\}\
\\

递归模式匹配是一个非常强大的功能,主要与递归一起使用,可用它写出更加优雅的代码。 RecursivePatterns包含多个子模式,例如位置模式(Positional Pattern,var isBassam = user is Employee(“Bassam”,_))、属性模式(Property Patterns,p is Employee {Name is “Mais”})、变量模式(Var Pattern)、丢弃模式(Discard Pattern,'_'),等等。

\\

示例

\\

带元组的递归模式(下面的例子也称为元组模式)

\\
\var employee = (Name: \"Thomas Albrecht\

转载地址:http://msasx.baihongyu.com/

你可能感兴趣的文章
Android 开发中使用 SQLite 数据库
查看>>
Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
查看>>
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>
Rambus9000万美元收购Inphi存储器互联业务
查看>>
3GPP一反常态提前制定NB-IoT标准有何深意?
查看>>
泉州电信推进渠道互联网化转型
查看>>
《响应式Web设计:HTML5和CSS3实践指南》——2.5节使用画布旋转文本
查看>>
嵌入式linux的tftp安装配置及tftp命令用法
查看>>
好的软件测试人员简历是什么样子的?
查看>>
《笑傲测试》笔记(第六式:伯仲伊吕)
查看>>
影响云计算核心问题的七个要素
查看>>
PWNFEST黑客大会:苹果Safari与微软Edge浏览器均被攻破
查看>>
Lessons on Prototyping for Early Entrepreneurs and Startups
查看>>
【快讯】在线体验Oracle Database 12.2 SQL新特性
查看>>
DB-Engines:2015年10月份全球数据库排名
查看>>
技术公司做互联网产品的 N 个思维毒瘤
查看>>
《Excel高手捷径:一招鲜,吃遍天》一第9招 文本与数字格式的相互批量转换...
查看>>
每天最多人评论的动弹将获赠开源杯具一个!!!
查看>>
《深入理解Spark:核心思想与源码分析》——2.4节Spark基本架构
查看>>
《Docker技术入门与实战》——第2章 Docker的核心概念和安装
查看>>