Global Usings 和 Implicit Usings

 介绍

      .NET 6 中新增了两个功能,全局引用和隐式引用,它们能减少我们需要添加到新.cs文件中的 using 语句的数量。

什么是隐式引用?

      如果使用模板创建新的 ASP.NET API,然后打开该文件,您会发现默认启用隐式使用(第 6 行)

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

      它为所有文件提供一些隐式使用,因此你不必将它们添加到您创建的每个文件中,这是非常方便的,但可能会导致一些问题,我们将在后面讨论。

什么是全局引用?

      在单个文件中使用全局引用,全局引用就会被 .NET 项目中的所有文件所引用,你不必在每个项目中单独添加。

global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;

全局引用和隐式引用的使用

      我们写代码的时候要遵循SOLID原则。第一个S代表单一责任原则,这表示我们在设计一个类的时候,通常希望这个类的职责是比较单一的,当我们打开一个.cs文件时,我们看到一个类,通常我们会观察这个文件的上方using语句里引用了那些命名空间,进而去推断这个类使用了哪些功能,比如我们看到了它使用了System.IO,我们会去推断该类可能会操作文件的读写,但如果我们使用了隐式引用,我们就无法看到System.IO,如此经典的命名空间的引用了,那么我们就无法推断这个类使用了哪些功能,而且.NET 6 为我们提供的隐式引入,我们是无法改变他默认提供的这七个引用的。

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

      所以说不建议使用隐式引入,把配置中的enable改成disable,,然后只是将 using 语句的削减版本添加到项目根目录下的 GlobalUsings.cs 文件中。(删除了System.IO和System.Net.Http),这样当我们打开一个类的时候,就会更好的知道这个类是用来做什么的。

global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Threading;
global using System.Threading.Tasks;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值