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

【转】[C#] GlobalUsing 的使用

【转】[C#] GlobalUsing 的使用

转自:豆包ai

在 C# 10 及以上版本中,Global Using 指令(全局 using 指令)是一项简化代码的新特性,允许在项目级别定义全局生效的 using 语句,无需在每个代码文件中重复声明。这能显著减少重复代码,使文件更简洁。

核心作用

传统上,每个 .cs 文件如需使用某个命名空间(如 SystemSystem.Collections.Generic),都需要在文件顶部添加 using 指令。而 Global Using 允许在单个文件中声明一次,让该命名空间在整个项目的所有代码文件中生效。

使用方式

1. 关键字 global 修饰 using 指令

在任意 .cs 文件中(通常建议单独创建一个 GlobalUsings.cs 集中管理),用 global 关键字修饰 using 语句:
csharp
 
 
// GlobalUsings.cs(文件名可自定义)
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using Microsoft.AspNetCore.Mvc;
 
之后,项目中所有 .cs 文件无需再写 using System; 等,可直接使用这些命名空间下的类型(如 List<T>ControllerBase)。

2. 隐式全局 Using(针对项目模板)

某些项目模板(如 ASP.NET Core Web API、Console App)会自动生成隐式的全局 using,无需手动声明。例如:
  • ASP.NET Core 项目默认包含 global using Microsoft.AspNetCore.Builder;global using Microsoft.AspNetCore.Http; 等,简化 Web 开发常用命名空间。
  • 这些隐式全局 using 由项目文件(.csproj)中的 <ImplicitUsings>enable</ImplicitUsings> 控制(默认启用)。

注意事项

  1. 作用范围:仅对当前项目有效,不影响引用的其他项目或类库。
  2. 文件位置:全局 using 可写在任意 .cs 文件中,但建议集中放在 GlobalUsings.cs 中,便于维护。
  3. 与普通 using 的关系:全局 using 不会替代文件内的 using,文件内的 using 仍可补充或覆盖全局设置(如 using static 或别名)。
  4. 禁用隐式全局 Using:若不需要模板自动生成的全局 using,可在 .csproj 中关闭:
    xml
     
     
    <Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>net8.0</TargetFramework><ImplicitUsings>disable</ImplicitUsings> <!-- 关闭隐式全局 using --></PropertyGroup>
    </Project>
    
     
     
  5. 命名冲突:若全局 using 的命名空间存在类型冲突,仍需在文件内通过显式命名空间(如 System.Text.Json.JsonSerializer)或 using 别名解决。

优势

  • 减少重复代码:避免在每个文件顶部重复声明常用命名空间(如 SystemSystem.Linq)。
  • 统一管理:集中维护项目级别的命名空间引用,便于团队规范。
  • 简化新人上手成本:无需记忆或手动添加大量基础 using 指令。

适用场景

  • 项目中频繁使用的命名空间(如 SystemSystem.Collections.Generic)。
  • 框架 / 库特有的常用命名空间(如 ASP.NET Core 的 Microsoft.AspNetCore.Mvc、Entity Framework Core 的 Microsoft.EntityFrameworkCore)。
总结:Global Using 是 C# 10+ 中提升开发效率的实用特性,通过全局声明减少重复代码,尤其适合中大型项目或框架开发场景。

 转自:https://furion.net/docs/globalusing
推荐大家在 Visual Studio 中安装 CodeMaid 插件(注意 2019 和 2022 版本),自动清理解决方案所有无用的 using,结合 GlobalUsings.cs 非常棒!
http://www.hskmm.com/?act=detail&tid=33110

相关文章:

  • Qoder 重磅升级,推出 Quest Remote 功能,像发邮件一样将任务委派到云端
  • 2025 年预制舱生产厂家最新推荐排行榜:深度剖析行业领军企业,助力客户精准选购优质产品光伏/电力/模块化/低压/高压/防爆预制舱厂家推荐
  • 2025国际冷链运输推荐腾翼搏时,专业温控医药物流供应商!
  • 2025连铸机设备推荐:瑞熠机械制造,专业生产优质厂家!
  • 2025机电安装优质厂家推荐:华芃机电,专业覆盖多领域安装服务!
  • 【SPIE出版 | ISSN已确定 | 连续4届稳定见刊检索】第五届计算机图形学、人工智能与数据处理国际学术会议 (ICCAID 2025)
  • 2025年低温高湿解冻设备厂家推荐排行榜,专业解冻技术与高效服务的行业首选!
  • 第一周算法设计作业
  • C++基本编程1——数位分离问题
  • 2025高精度流量计厂家推荐:弗罗迈测控系统,技术领先品质卓越!
  • 存储过程循环替代游标
  • 2025多功能防水篷布厂家推荐:成硕达塑业,品质卓越用途广泛!
  • 钉钉接入业务系统在windows系统下的web端无法加载图片
  • 2025危险品运输推荐盘锦畅奥,专业安全服务值得信赖!
  • 2025精密磨床及CNC加工推荐:东莞市品之豪金属制品专业定制!
  • AI元人文构想:一种负责任的文明演化框架研究报告
  • 少时诵诗书上说试试说试试
  • 2025 消防培训学校最新推荐榜:实训实力解析,附选择指南消防考证培训学校推荐
  • 2025年工作服厂家推荐排行榜,春夏秋冬季工作服,工人工作服,车间工作服,防静电工作服公司推荐!
  • JavaScript 中处理日期格式化
  • 2025年在线粘度计厂家推荐排行榜,实验室在线粘度计,工业在线粘度计,高精度在线粘度计公司推荐!
  • 找到M3U8直播源的方法
  • 2025年临床样本冷链运输服务商推荐榜单,专业冷链物流,生物样本运输公司精选!
  • 2025年网格川字塑料托盘厂家推荐排行榜,耐用抗压,仓储物流首选!
  • 基于MATLAB的FIR和IIR低通/带通滤波器实现
  • 基于模糊C均值聚类(FCM)的图像分割技术
  • 2025年广告衫厂家推荐排行榜,防静电/劳保/国网/餐厅/工厂/电工/防酸碱/电力/车间/航空/员工/文化衫/T恤/POLO衫/冲锋衣公司推荐!
  • 2025年管道安装厂家权威推荐榜单:专业施工与优质服务口碑之选!
  • 2025年流量控制器厂家推荐排行榜,气体流量控制器,液体流量控制器,智能流量控制器公司精选!
  • 04-格式控制符