VS2017中C#7新特性详解:out变量与元组使用指南

cnblogs.com/ants/p/6382264.html

VS2017中C#7新特性详解:out变量与元组使用指南

VS2017也有几个版本的rc.我想跟进看看c#7中添加了哪些内容。我搜索了c#7,发现了很多文章。不幸的是,许多功能 IDE 根本不允许编译。 。 。所以今天我们主要列出已经确认的c#7功能(一般来说,rc之后不会添加新功能,其他预览功能可能要等c#8了哈哈)

1.输出变量

在 c#7 之前我们必须这样做

在c#7中我们可以这样做

当然你也可以使用“var”

这是一个小更新。其实这个问题已经存在很长时间了,应该很容易解决。不知道为什么c#7才引入。不管怎样,以后可以省一行代码。

2. 元组

需要安装nuget包:System.ValueTuple

就我个人而言,我认为这是给 C#7 带来的最酷、最有用的改变。让我们从头看起。

你还记得“元组”吗?不记得了?好吧,让我们看看它的定义。

让我们看看如何使用它

你想哭吗? 。说实话,自从我开始编程以来,我几乎没有使用过Tuple。 “ItemN”对于开发者来说非常不友好。我宁愿创建一个结构或类来定义属性设备。

我们在c#7中试试(这算返回值太多了)?

如果你觉得return(1,xxx)不够准确,那么你可以

如果你不想要result.xxx,那么你也可以“解构”

您仍然可以这样做(不推荐)

您还可以在方法中临时创建一个元组

通过这些功能我们还可以不断地声明和赋值变量

解构类(不推荐)

3. 模式匹配

本节主要丰富了“switch”,有点类似于c#6的异常过滤器。

在以前的版本中,switch 只能区分常量,但现在它可以有更多的条件。

在c#7中我们可以这样做

4. 引用局部变量和返回值

这个个人很少用,所以简单写了一个对比代码。

5. 本地功能

这是一个非常实用的功能,丰富了动作和功能。让我们看一个例子:

c#7之前的递归调用

在 c#7 中

6. 表达式可以用于更多成员(More expression-bodied Members)

7. 表达式抛出异常(Throw statements)

8. 异步返回值类型(Generalized async return types)

需要安装nuget包:System.Threading.Tasks.Extensions

严格来说,这并不是语法的新功能,而是添加了一些类。

以前,如果我们想使用“async”和“await”,就必须使用Task作为返回值(void特殊情况忽略),但是Task是引用类型(类),会造成浪费(内存和gc) )在非常简单的任务中。 )

在c#7中,微软添加了一个nuget包,并添加了一个新类型“ValueTask”来解决这个问题。它是值类型。

9. 数字文字语法改进

妈妈再也不怕我多加个0了~

写在最后

我写这篇文章的时候是相当头疼的,因为我一时想不出这个特性的适用场景,而且还需要实践一下才能体会到新语法是否有用。

值得注意的是,由于一些新的语法与nuget包相关,所以下次我们会仔细研究一下,这主要归功于roslyn的贡献。

参考:

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

87阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读