.NET 6发布后支持C#10,C# 10 向 C# 语言添加了很多功能,今天我们分享一下全局和隐式usings的使用:

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

1. 全局using指令

如果关键字 global 出现在 using 指令之前,则 using 适用于整个项目,即实现了项目级的统一using

global using System;

可以在全局 using 指令中使用 using 的任何功能。

例如,添加静态导入类型并使该类型的成员和嵌套类型在整个项目中可用。

如果在 using 指令中使用别名,该别名也会影响整个项目:

可以将全局使用放在任何 .cs 文件中,包括 Program.cs 或专门命名的文件,如 globalusings.cs。

全局usings的范围是当前编译,一般对应当前项目。

2. 隐式usings

隐式usings功能会自动在构建的项目类型添加通用的全局using指令。

要启用隐式usings,请在 .csproj 文件中设置 ImplicitUsings 属性:

在新的 .NET 6 模板中启用了隐式usings。

自动生成不可见的 using 语句并在全局范围内声明它们,因此不必处理在每个文件中重复声明命名空间的混乱。

我们新建了一个.NET 6 Web工程,MyMinimalAPI

dotnet build后,找到obj/Debug/net6.0 文件夹以查看隐藏的自动生成文件 - [ProjectName].GlobalUsings.g.cs。使用一个单独的类来将所有 using 语句保存在一个地方。

启用了这个隐式using之后,我们在任何class中,都无需再重复声明using引用了,代码更简洁、更方便

3. Combining using功能

文件顶部的传统 using 指令、全局 using 指令和隐式 using 可以很好地协同工作。

隐式using允许您在项目文件中包含适合当前项目类型的 .NET 命名空间。

全局 using 指令允许包含其他命名空间,以使它们在整个项目中可用。

代码文件顶部的 using 指令允许包含项目中仅少数文件使用的命名空间。

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

周国庆

2022/3/7

 

最新文章

  1. erlang 健壮性
  2. Quartz.net 开源job调度框架(一)
  3. ZooKeeper学习总结 第二篇:ZooKeeper深入探讨(转载)
  4. python常用工具小函数-字符类型转换
  5. Python入门笔记(13):列表解析
  6. web网页的表单排版利器--960css
  7. IE的@cc_on条件编译
  8. 一份React-Native学习指南-感谢分享
  9. libvirt hypervisors信息采集
  10. .net 开发必备小抄(电子书)
  11. 【Java框架型项目从入门到装逼】第三节 - 如何用Tomcat发布web项目?
  12. Webhook 实践 —— 自动部署
  13. IIS 请求 超时设置
  14. Linux 网卡Bond模式
  15. centos-6.5安装部署LNMP环境
  16. c语言-遍历pci设备(1)io访问
  17. [学习笔记]编译sensetime发表的Single View Stereo Matching(SVS)遇到的问题
  18. Android 升级脚本updater-script 的函数简单介绍
  19. 20155302 2016-2017-2 《Java程序设计》第十周学习总结
  20. 21-从零玩转JavaWeb-多态详解

热门文章

  1. MySQL8.0.28安装教程全程参考MySQL官方文档
  2. Ubuntu更换镜像源
  3. TensorFlow 机器学习秘籍中文第二版·翻译完成
  4. Centos设置网络(固定IP)
  5. zeppelin安装及配置
  6. Spark算子 - aggregate
  7. IT职业技能图谱:架构师、H5、DBA、移动、大数据、运维...
  8. 在ABP VNext框架中处理和用户相关的多对多的关系
  9. 浅谈归并排序:合并 K 个升序链表的归并解法
  10. Node 模块规范鏖战:难以相容的 CJS 与 ESM