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

.NET 6发布后支持C#10,C# 10 向 C# 语言添加了很多功能,今天我们分享一下全局和隐式usings的使用:
using 指令简化了使用命名空间的方式。 C# 10 包括一个新的全局 using 指令和隐式 usings,以减少需要在每个文件顶部指定的 usings 数量。
1. 全局using指令
如果关键字 global 出现在 using 指令之前,则 using 适用于整个项目,即实现了项目级的统一using
C#10新特性-全局和隐式usings
文章图片

global using System;

可以在全局 using 指令中使用 using 的任何功能。
例如,添加静态导入类型并使该类型的成员和嵌套类型在整个项目中可用。
如果在 using 指令中使用别名,该别名也会影响整个项目:
C#10新特性-全局和隐式usings
文章图片

可以将全局使用放在任何 .cs 文件中,包括 Program.cs 或专门命名的文件,如 globalusings.cs。
全局usings的范围是当前编译,一般对应当前项目。
2. 隐式usings
隐式usings功能会自动在构建的项目类型添加通用的全局using指令。
要启用隐式usings,请在 .csproj 文件中设置 ImplicitUsings 属性:
C#10新特性-全局和隐式usings
文章图片

在新的 .NET 6 模板中启用了隐式usings。
自动生成不可见的 using 语句并在全局范围内声明它们,因此不必处理在每个文件中重复声明命名空间的混乱。
我们新建了一个.NET 6 Web工程,MyMinimalAPI
dotnet build后,找到obj/Debug/net6.0 文件夹以查看隐藏的自动生成文件 - [ProjectName].GlobalUsings.g.cs。使用一个单独的类来将所有 using 语句保存在一个地方。
C#10新特性-全局和隐式usings
文章图片

启用了这个隐式using之后,我们在任何class中,都无需再重复声明using引用了,代码更简洁、更方便
C#10新特性-全局和隐式usings
文章图片

3. Combining using功能
文件顶部的传统 using 指令、全局 using 指令和隐式 using 可以很好地协同工作。
隐式using允许您在项目文件中包含适合当前项目类型的 .NET 命名空间。
全局 using 指令允许包含其他命名空间,以使它们在整个项目中可用。
代码文件顶部的 using 指令允许包含项目中仅少数文件使用的命名空间。

简单分享这个C# 10小特性。

周国庆
2022/3/7


【C#10新特性-全局和隐式usings】

    推荐阅读