C#10新特性之全局和隐式 usings

using 指令简化了您使用命名空间的方式。C# 10 包括一个新的全局 using 指令和隐式 usings,以减少您需要在每个文件顶部指定的 usings 数量。.

全局 using 指令

如果关键字 global 出现在 using 指令之前,则 using 适用于整个项目:

global using System;

您可以在全局 using 指令中使用 using 的任何功能。例如,添加静态导入类型并使该类型的成员和嵌套类型在整个项目中可用。如果您在using 指令中使用别名,该别名也会影响您的整个项目:

global using static System.Console;
global using Env = System.Environment;

您可以将全局使用放在任何 .cs 文件中,包括 Program.cs 或专门命名的文件,如 globalusings.cs。全局 usings 的范围是当前编译,一般对应当前项目。

隐式 usings

隐式 usings 功能会自动为您正在构建的项目类型添加通用的全局 using 指令。要启用隐式 usings,请在 .csproj 文件中设置 ImplicitUsings 属性:

<PropertyGroup>
    <!-- Other properties like OutputType and TargetFramework -->
    <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
在新的 .NET 6 模板中启用了隐式 usings 。在此博客文章中阅读有关 .NET 6 模板更改的更多信息。 
一些特定全局 using 指令集取决于您正在构建的应用程序的类型。例如,控制台应用程序或类库的隐式 usings 不同于 ASP.NET 应用程序的隐式 usings。