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. QML学习【一】Basic Types

      QML入门教程(1) QML是什么? QML是一种描述性的脚本语言,文件格式以.qml结尾.语法格式非常像CSS(参考后文具体例子),但又支持javacript形式的编程控制.它结合了QtDesi ...

  2. <iOS小技巧> 返回上级目录操作Goback()方法

    Goback()方法功能:返回上一级界面,通过判断 popViewControllerAnimated 类型是否为空,来判断是present还是pop出来,然后直接做了releaseSelf操作: - ...

  3. linux如何直接运行python文件

    1.首先创建好py文件 touch GetCiscoCpu.py 2. 编写GetCiscoCpu.py vi GetCiscoCpu.py /********************** *本文是用 ...

  4. 线性表List

    数组array是基本的数据结构,但它的功能有限,线性表list可以认为是扩展了功能的数组.可以自动调整大小.添加和删除元素不需要其他元素移位. 根据指针数量和指向的不同,线性表分为单向链表.双向链表和 ...

  5. 在前后端分离项目中使用SpringBoot集成Shiro

    前言 这次在处理一个小项目时用到了前后端分离,服务端使用springboot2.x.权限验证使用了Shiro.前后端分离首先需要解决的是跨域问题,POST接口跨域时会预发送一个OPTIONS请求,浏览 ...

  6. Android native进程间通信实例-binder篇之——简单的单工通信

    网上找了很多binder相关文章,大部分都是在跟踪binder实现源代码,然后再把框架代码贴出来,看着实在费力. 这篇文章从实际出发,直接用一个案例下手,后续想了解binder相关原理的话,可以参考& ...

  7. OpenProj打开不了或者提示”Failed to load Java VM Library”的错误的解决方案

    一.双击打开OpenProj.exe没反应的解决方案: 1) 修改OpenProj1.4.0.ini,将Maximum Version=any改为Maximum Version=1.7,保存. 2)这 ...

  8. MySQL优化(一)

    MySQL数据库优化一之引索详解 对于网站优化最注重的就是数据库的优化,而在数据库优化中首先考虑到的应该是数据库索引是否建立于是否建立的正确. 1.对于刚刚接触数据库的程序员,对于引索不是很理解.下面 ...

  9. Gradle +HanLP +SpringBoot 构建关键词提取,摘要提取 。入门篇

    前段时间,领导要求出一个关键字提取的微服务,要求轻量级. 对于没写过微服务的一个小白来讲.有点赶鸭子上架,但是没办法,硬着头皮上也不能说不会啊. 首先了解下公司目前的架构体系,发现并不是分布式开发,只 ...

  10. Python编程菜鸟成长记--A1--02--Python介绍

    目录 1.重点知识 2.Python 语言介绍 2.1.Python 在主要领域的应用前景 2.2.Python 在机构.行业巨头公司的应用 3.Python 的发展史 4.Python 的发展前景如 ...