C# 7.1 是 C# 语言的第一个点版本(更新版本)。 它标志着该语言发布节奏的加速。 理想情况下,可以在每个新功能准备就绪时更快推出新功能。 C# 7.1 增加了将编译器配置为匹配特定语言版本的功能。 从而可以分别制定有关升级语言版本的决策和有关升级工具的决策。

C# 7.1 增加了语言版本选择配置元素、三个新的语言功能和新的编译器行为。

最后,编译器有 -refout 和 -refonly 两个选项,可用于控制引用程序集生成

若要使用单点版本中的最新功能,需要配置编译器语言版本并选择版本。

01 异步 main 方法
异步 Main 方法使你能够在 Main 方法中使用 await 关键字。 在过去,需要编写:
static int Main()
{
return DoAsyncWork().GetAwaiter().GetResult();
}

现在,可以编写:

static async Task<int> Main()
{
// DoAsyncWork,包括其等待表达式:
return await DoAsyncWork();
}

如果程序不返回退出代码,可以声明返回 Task 的 Main 方法:

static async Task Main()
{
await SomeAsyncMethod();
}

如需了解更多详情,可以阅读编程指南中的异步 Main 一文。

02 默认文本表达式
默认文本表达式是针对默认值表达式的一项增强功能。 这些表达式将变量初始化为默认值。 过去会这么编写:
Func<string, bool> whereClause = default(Func<string, bool>);
现在,可以省略掉初始化右侧的类型:
Func<string, bool> whereClause = default;

若要详细了解此增强功能,可以参阅 C# 编程指南中的默认值表达式一文。

此增强功能也会更改某些default 关键字 的分析规则。

03 推断元组元素名称
此功能是对 C# 7.0 中引入的元组功能一次小型增强。 在初始化元组时,许多时候,赋值操作右侧的变量名与用于元组元素的名称相同:
int count = ;
string label = "Colors used in the map";
var pair = (count: count, label: label);

元组元素的名称可通过在 C# 7.1 中初始化元组时使用的变量进行推断:

int count = ;
string label = "Colors used in the map";
var pair = (count, label); // element names are "count" and "label"

若要详细了解此功能,可以参阅元组一文。

04 泛型类型参数的模式匹配
自 C# 7.1 起,is 和 switch 类型模式的模式表达式的类型可能为泛型类型参数。 这可能在检查 struct 或 class 类型且要避免装箱时最有用。
05 引用程序集生成
有两个新编译器选项可生成仅引用程序集:-refout 和 -refonly 。 链接的文章详细介绍了这些选项和引用程序集。
 

C#7.1 新增功能的更多相关文章

  1. ADO.NET 中的新增功能

    ADO.NET 中的新增功能: .NET Framework (current version) 以下是 .NET Framework 4.5 中 ADO.NET 的新增功能. SqlClient D ...

  2. .NET Framework3.0/3.5/4.0/4.5新增功能摘要

    Microsoft .NET Framework 3.0 .NET Framework 3.0 中增加了不少新功能,例如: Windows Workflow Foundation (WF) Windo ...

  3. 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能

    [源码下载] 与众不同 windows phone (40) - 8.0 媒体: 音乐中心的新增功能, 图片中心的新增功能, 后台音乐播放的新增功能 作者:webabcd 介绍与众不同 windows ...

  4. PHP V5.2 中的新增功能,第 1 部分: 使用新的内存管理器

    PHP V5.2:开始 2006 年 11 月发布了 PHP V5.2,它包括许多新增功能和错误修正.它废止了 5.1 版并被推荐给所有 PHP V5 用户进行升级.我最喜欢的实验室环境 —— Win ...

  5. WPF4.5 中的新增功能和增强功能的信息

    本主题包含有关 Windows Presentation Foundation (WPF) 版本 4.5 中的新增功能和增强功能的信息. 本主题包含以下各节: 功能区控件 改善性能,当显示大时设置分组 ...

  6. .NET Framework 4.5、4.5.1 和 4.5.2 中的新增功能

    .NET Framework 4.5.4.5.1 和 4.5.2 中的新增功能 https://msdn.microsoft.com/zh-cn/library/ms171868.aspx

  7. openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署

    OpenStack Kilo版本发布 20英文文档OpenStack Kilo版本文档汇总:各个操作系统安装部署.配置文档.用户指南等文档 Kilo版部署 openstack[Kilo]入门 [准备篇 ...

  8. hadoop2.6.0汇总:新增功能最新编译 32位、64位安装、源码包、API下载及部署文档

    相关内容: hadoop2.5.2汇总:新增功能最新编译 32位.64位安装.源码包.API.eclipse插件下载Hadoop2.5 Eclipse插件制作.连接集群视频.及hadoop-eclip ...

  9. cloudstack4.4新增功能前瞻

    cloudstack4.4.0新功能前瞻 转载请注明地址:http://blog.csdn.net/zt689/article/details/37698989 1.   cloudstack4.4. ...

  10. SQL Server 2016 Alwayson新增功能

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/ 概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alw ...

随机推荐

  1. Debug监视器(监视运行期程序通过API函数OutputDebugString输出的字符串)

    http://download.csdn.net/detail/zswang/207199

  2. Java集合 ArrayList原理及使用

    ArrayList是集合的一种实现,实现了接口List,List接口继承了Collection接口.Collection是所有集合类的父类.ArrayList使用非常广泛,不论是数据库表查询,exce ...

  3. 阿里云CDN+OSS完成图片加速

    我们使用React Native开发APP,在列表中显示图片时,列表框经常出现长时间的空白.经过稍微研究和参考其他人的经验,我们知道React Native的ListView以及后来改进版的FlatL ...

  4. webstrom sass 关于arguments 和 Output paths to refresh 设置

    第一种设置: Arguments:--no-cache --update -t expanded $FileName$:$FileNameWithoutExtension$.css Output pa ...

  5. Tido c++树状数组知识讲解(转载)

    树状数组可以用来动态计算前缀和,可以随时进行更新 而普通的前缀和只是静态的         

  6. sails连接monogodb数据库

    1.全局安装:cnpm install -g sails 2.命令窗口进入项目位置 新建项目:sails new sails_cqwu --fast,选择2(快速建立sails项目) 3.cd进入sa ...

  7. 老雷socket编程之websocket实现

    老雷socket编程之websocket实现 我们主要实现私聊和群聊两个功能,要在web端实现想微信QQ那样的即时通讯的功能,我们需要了解一下websocket.websocket是一种可以双向通讯的 ...

  8. mvc中的表现和数据分离怎么理解?

    使用过 JavaScript框架(如 AngularJS, Backbone)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加 ...

  9. Java基础知识了解

    第一章 开发前言 一.java语言概述 Java是当下最流行的一种编程语言,至今有20年历史了.Java语言之父是James Gosling. Java是Sun公司(Stanford Universi ...

  10. 使用Appium做手机自动化录制问题

    最近在使用appium做Android手机自动化脚本录制, 发现点击“tap”时,一直没有用,页面还是不能跳转. 咋办?发愁... 于是看到旁边有个“sendkeys”,那是不是能够直接发送参数不就行 ...