.NET|.NET 6 中的隐式命名空间引用
目录
- 1、历史变化
- 2、新版本介绍
- 3、More usage
- 4、More
之前写过一篇隐式命名空间引用的大概介绍,在一些小的测试项目中也有在用,一直没作为示例给大家分享,主要原因在于之前看到了一个关于隐式命名空间引用的
Github issue
提到会有一些破坏性的变更,现在 .NET 6 RC 1
版本已经发布,RC 版本的发布也就意味着新功能的开发已经基本结束,正式版发布之前会专注于各种测试和 BUG
修复。1、历史变化
.NET 6 Preview 7
时微软已经开始引入隐式命名空间引用的功能,可以参考之前的文章 .NET 6 即将到来的新特性隐式命名空间引用Preview 7
的时候这个功能默认是启用的,如果需要禁用需要配置 DisableImplicitNamespaceImports
来禁用,而在 .NET 6 RC 1
版本中默认是禁用的,需要显式的通过 ImplicitUsings
来启用,微软的 ASP.NET Core RC 1
的博客文章中有所提及,但是很简略,一带而过了。在 Preview 7 中如果想要使用新加一个 namespace 引用,可以在项目文件中配置
类似地,如果要移除某一个命名空间的引用,之前是
而现在是
2、新版本介绍 使用
.NET 6 RC 1 SDK
创建应用之后,项目文件是这样的Exe net6.0 enable enable
相比 .NET 6 Preview 7 多了一个
ImplicitUsings
的属性,这个就是前面提到的用于启用隐式命名空间引用的配置属性,可以配置为 enable
或者 true
来启用这个特性【.NET|.NET 6 中的隐式命名空间引用】
3、More usage 来看下面的这个示例:
MyFile.Exists(""); WriteLine("Hello, World!"); InvokeHelper.TryInvoke(() => WriteLine("ImplicitUsingSample"));
项目文件中自定义的命名空间引用
自动生成的
Global Using
文件内容如下(自动生成文件位置在 obj/Debug/$
(TargetFramework)/*.GlobalUsings.g.cs ):// global using global::System.Collections.Generic; global using global::System.IO; global using global::System.Linq; global using global::System.Net.Http; global using global::System.Threading; global using global::System.Threading.Tasks; global using global::WeihanLi.Common.Helpers; global using MyFile = global::System.IO.File; global using static global::System.Console;
文章图片
默认的命名空间引用和所使用的 SDK 有关系,目前确定的如下:
文章图片
4、More 个人觉得这是一个好的变更,如果默认启用的话,有很多项目在升级的时候可能就会有冲突导致无法正常的编译,而默认禁用,升级的时候就能避免这种
breaking change
,升级可以更加平滑,只是对于 Preview 7 升级过来的用户来说可能会有些难受,不过因为还是 preview
的功能有一些破坏性的变更也是可以接受的。有了
Global using
之后,之前很多做不到的事情,现在就变得可能,比如使用类型别名使用起来可能会发现有一些 BUG ==,发现 BUG 在
Github
上提 issue
就好了如果没有体验过 .NET 6 的 Preview 版本,非常推荐尝试一下 .NET 6 RC 1,新功能已经基本确定了,进行更多的测试来努力让 .NET 6 成为一个高质量的
Release
到此这篇关于.NET 6 中的隐式命名空间引用的文章就介绍到这了,更多相关.NET 6 中的隐式命名空间引用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 如何在Mac中的文件选择框中打开系统隐藏文件夹