c# gobal using

在 C# 10 及以上版本中,引入了 全局 using(Global using)特性,这允许开发者在项目级别声明 using 命名空间,从而简化代码的书写和维护。全局 using 的主要作用是提高代码的可读性和减少重复声明。

全局 using 的基本概念

全局 using 的声明方式可以使指定的命名空间在整个项目中可用,而不需要在每个文件的顶部重复书写。这对于大型项目尤为重要,因为它们往往包含多个文件,并使用许多相同的命名空间。

如何使用全局 using

  1. 在 .csproj 文件中设置全局 using
    使用 .csproj 文件配置全局 using 是最常用的方式。你可以在项目文件中添加 元素,例如:
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Using Include="System.Collections.Generic" />
    <Using Include="System.Linq" />
    <Using Include="System.Threading.Tasks" />
  </ItemGroup>

</Project>

添加这一块配置后,System.Collections.Generic、System.Linq 和 System.Threading.Tasks 就会在项目中全局可用。

另外,如果csproj中启用了

<ImplicitUsings>enable</ImplicitUsings>

示例

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

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

</Project>

ImplicitUsings 是在 C# 10 和 .NET 6 中引入的一个特性,它可以自动为你的项目包含常用的 using 指令,从而简化代码文件的书写。该特性旨在提高开发效率,减少在每个文件中手动添加常用命名空间的需要。

默认包含的命名空间

启用 ImplicitUsings 后,通常会自动包含以下一些常用的命名空间:

  • System
  • System.Collections.Generic
  • System.IO
  • System.Linq
  • System.Net.Http
  • System.Threading
  • System.Threading.Tasks
  • Microsoft.AspNetCore.Mvc(在 ASP.NET Core 项目中)
    具体包含的命名空间可能会因项目类型而有所不同。
  1. 在代码文件中声明全局 using
    你可以在任何 .cs 文件中使用 global using 关键字来声明全局 using 指令。例如:
global using System;
global using System.Collections.Generic;
global using System.Linq;

一般将这所有using统一放在某个 .cs 文件的顶部,如 GlobalUsings.cs,以便于管理。

示例
创建一个名为 GlobalUsings.cs 的文件,内容如下:

// GlobalUsings.cs

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

然后你可以在任何其他 C# 文件中直接使用这些命名空间而无需再次声明:

// SomeFile.cs
public class SampleClass
{
    public void SampleMethod()
    {
        var list = new List<int> { 1, 2, 3 };
        var sum = list.Sum();
        Console.WriteLine(sum);
    }
}

注意事项

  1. 命名空间冲突:当两个全局 using 指令引入了相同的命名空间或类型时,可能会引发命名冲突。在这种情况下,显式使用的 using 指令将优先于全局 using 指令。

  2. 可读性:虽然全局 using 指令减少了重复代码,但过度使用可能会影响代码的可读性,尤其是当多个开发者在同一项目中工作时,因此要谨慎管理和使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ou.cs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值