C# 7.1 是 C# 语言的第一个点版本(更新版本)。 它标志着该语言发布节奏的加速。 理想状况下,能够在每一个新功能准备就绪时更快推出新功能。 C# 7.1 增长了将编译器配置为匹配特定语言版本的功能。 从而能够分别制定有关升级语言版本的决策和有关升级工具的决策。html
C# 7.1 增长了语言版本选择配置元素、三个新的语言功能和新的编译器行为。express
最后,编译器有 -refout
和 -refonly
两个选项,可用于控制引用程序集生成。编程
若要使用单点版本中的最新功能,须要配置编译器语言版本并选择版本。api
Main
方法中使用 await
关键字。 在过去,须要编写:
static int Main() { return DoAsyncWork().GetAwaiter().GetResult(); }
如今,能够编写:异步
static async Task<int> Main() {
// DoAsyncWork,包括其等待表达式: return await DoAsyncWork(); }
若是程序不返回退出代码,能够声明返回 Task 的 Main
方法:async
static async Task Main() { await SomeAsyncMethod(); }
如需了解更多详情,能够阅读编程指南中的异步 Main 一文。ide
Func<string, bool> whereClause = default(Func<string, bool>);
Func<string, bool> whereClause = default;
若要详细了解此加强功能,能够参阅 C# 编程指南中的默认值表达式一文。工具
此加强功能也会更改某些default 关键字 的分析规则。ui
int count = 5; string label = "Colors used in the map"; var pair = (count: count, label: label);
元组元素的名称可经过在 C# 7.1 中初始化元组时使用的变量进行推断:spa
int count = 5; string label = "Colors used in the map"; var pair = (count, label); // element names are "count" and "label"
若要详细了解此功能,能够参阅元组一文。
is
和 switch
类型模式的模式表达式的类型可能为泛型类型参数。 这可能在检查 struct
或 class
类型且要避免装箱时最有用。