【已更新最新开发文章,点击查看详细】
从而可以分别制定有关升级语言版本的决策和有关升级工具的决策。
语言版本选择配置元素、三个新的语言功能和新的编译器行为。
引用程序集生成。
配置编译器语言版本并选择版本。
01 异步 main 方法
在过去,需要编写:
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;
默认值表达式一文。
default 关键字 的分析规则。
03 推断元组元素名称
在初始化元组时,许多时候,赋值操作右侧的变量名与用于元组元素的名称相同:
int count = 5; string label = "Colors used in the map"; var pair = (count: count, label: label);
元组元素的名称可通过在 C# 7.1 中初始化元组时使用的变量进行推断:
int count = 5; string label = "Colors used in the map"; var pair = (count, label); // element names are "count" and "label"
若要详细了解此功能,可以参阅元组一文。
04 泛型类型参数的模式匹配
这可能在检查
struct 或 class 类型且要避免装箱时最有用。05 引用程序集生成
链接的文章详细介绍了这些选项和引用程序集。
【已更新最新开发文章,点击查看详细】