【已更新最新开发文章,点击查看详细】

从而可以分别制定有关升级语言版本的决策和有关升级工具的决策。

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

引用程序集生成。

配置编译器语言版本并选择版本。

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 引用程序集生成
链接的文章详细介绍了这些选项和引用程序集。
 
【已更新最新开发文章,点击查看详细】

相关文章: