当前位置: 首页 > article >正文

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 指令减少了重复代码,但过度使用可能会影响代码的可读性,尤其是当多个开发者在同一项目中工作时,因此要谨慎管理和使用。


http://www.kler.cn/news/343185.html

相关文章:

  • rdagent框架代码拆解:自动化因子挖掘
  • Java基础-Wrapper Classes(包装类)
  • Vulnhub靶场案例渗透[6]- DC6
  • JAVA基础面试题汇总(持续更新)
  • C++11 开发中的 Atomic 原子操作
  • react 封装防抖
  • 【优选算法】--- 分治 快速排序
  • 如何快速给word文件加拼音?请跟着步骤完成吧
  • centos7更新yum国内源
  • 【hot100-java】合并 K 个升序链表
  • 【含文档】基于Springboot+Vue的小区家政服务预约平台(含源码+数据库+lw)
  • CST软件优化超表面--- 偏振片- 线圆极化转换,天线阵任务,远场算轴比AR
  • 学习之偏函数
  • 数据挖掘学习笔记:朴素贝叶斯 | Python复现
  • 搬砖10、Python 图形用户界面和游戏开发
  • java:pdfbox 3.0 去除扫描版PDF中文本水印
  • 电子取证新视角:Windows系统中文用户输入痕迹信息提取方法研究与实现
  • 使用Qt Creator创建项目
  • 腾讯云SDK用量统计
  • SpringBoot开发——整合Actuator监控和管理Spring Boot 应用