使用声明的 C# v10 全局的文件名约定

File name convention for C# v10 global using declarations

提问人:camelCase 提问时间:12/10/2021 最后编辑:nalkacamelCase 更新时间:2/2/2023 访问量:900

问:

C# 开发社区内是否就声明全局 using 语句的 .cs 文件名达成共识?

我打算采用文件名 GlobalUsings.cs,但后来发现一个名为 MyProject.GlobalUsings.g.cs 的隐藏文件是由 VS2022 工具链在后台创建的。这是为了支持相关的 C# 10 新功能,称为隐式全局使用指令。

Blazor 支持 .razor 文件的类似功能,Blazor 解决方案模板会自动创建名为 _Imports.razor 的文件。该名称派生自 Razor 语法,用于声明 using 引用。

命名约定 using 指令 C#-10.0

评论

1赞 Panagiotis Kanavos 12/10/2021
这是一项新功能,因此没有足够的时间达成共识,甚至没有足够的时间决定是否需要共识。你得到的只是很多意见。为什么不举个例子呢?Globals.cs
1赞 Jersey Dude 12/24/2021
我看到一些倡导 Usings.cs 的帖子。例如:youtube.com/watch?v=RWYrafpP53A
1赞 KargWare 11/7/2023
我尝试用前导下划线将其命名为 evrywhere,因此我将其放在“解决方案资源管理器”中列表的顶部,而不是在常规课程的中间位置。正如您提到的,前导下划线类似于 razor/blazor。我不明白为什么Visual Studio将其命名为“GlobalUsings.cs”用于新项目。可悲的是,这是不可配置的。_GlobalUsings.cs

答:

7赞 Jess 12/29/2021 #1

简答题

Usings.cs或者也许.GlobalUsings.cs

更多信息

实际上有 2 个新功能。起初它们看起来很简单,但你读得越多,它就越复杂。

  1. 全局使用指令。您可以在任何文件中的任何 using 指令前面使用,以使其在项目中全局使用。global
  2. 隐式使用。这将根据项目类型自动添加一组通用的全局 using 指令。可以在升级到 .NET 6 的项目中启用此功能,将其放在项目 csproj 文件中:<PropertyGroup><ImplicitUsings>enable</ImplicitUsings>...

默认情况下,在新的 .NET 6 项目上启用隐式使用,因此听起来约定如下:

  1. 使用隐式用法。
  2. 您可能仍然需要一个文件来存储非隐式的全局使用。我喜欢你的想法.它是自我记录的。GlobalUsings.cs

事实上,欢迎使用 C# 10 博客建议使用此命名。我强烈推荐阅读它;这对我真的很有帮助。

编辑:

这似乎一直在变化。.NET 6 项目模板现在包含一个文件。Usings.csenter image description here

评论

1赞 camelCase 12/30/2021
我一直成功地将我的全局使用语句放在文件 GlobalUsings.cs 中。我最初担心与工具链自动生成的 GlobalUsings.g.cs 文件发生冲突是没有根据的。归根结底,这些文件都不包含类型声明,而只是 using 语句的捆绑包。
0赞 Jess 12/30/2021
太棒了@camelCase!就在昨天,我做了同样的事情。我的代码现在看起来更干净了,更容易阅读。我敢肯定,当我回到以前的项目时,我会更多地注意到它。
2赞 Jess 1/7/2022
博客推荐全部小写,但我不能让自己这样做。它看起来很奇怪,实际上每个其他文件都是 PascalCase。globalusings.cs