如何在类模板中使用文件范围的命名空间声明?

Posted

技术标签:

【中文标题】如何在类模板中使用文件范围的命名空间声明?【英文标题】:How can I use a file-scoped namespace declaration in a class template? 【发布时间】:2021-12-28 01:21:03 【问题描述】:

C#10 引入了file-scoped namespaces,我想在 Visual Studio 的类模板中使用它。我已将“类”模板文件更新为以下内容:

namespace $rootnamespace$;
class $safeitemrootname$

    //I put this comment here to make sure it's using the right file

但是当我创建一个新的空类时,我得到了这个自动生成的代码:

namespace ProjectName

    internal class Class1
    
        //I put this comment here to make sure it's using the right file
    

我需要做什么才能使空类的自动生成代码看起来像这样?

namespace ProjectName;  
internal class Class1



作为参考,我使用的是 Visual Studio 2022 Professional,我的项目使用的是 C#10 和 .NET 6。

我正在修改的类模板文件的位置是:C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs

【问题讨论】:

vs 模板是开源的,你也许可以找到一个新的并比较 @TheGeneral 你会去哪里找这些? 简答...¯\_(ツ)_/¯ 【参考方案1】:

您必须将项目的 editorconfig 设置为首选文件范围的命名空间。

    右键单击您的项目。选择“添加”→“新项目”

    选择“editorConfig 文件 (.NET)”

    双击新的 editorconfig 文件。在“代码样式”选项卡中,将“命名空间声明”设置为“文件范围”

代码模板现在将按预期工作。

【讨论】:

您不仅可以将“.editorconfig”文件添加到您的项目中,还可以将其添加到您的解决方案中,并使其适用于该解决方案中的所有项目。【参考方案2】:

查看这个帖子:https://***.com/a/69889803

他们使用 .editorconfig 文件,您可以在其中指定命名空间声明样式。在 VS 2022 中创建新文件时,它将使用该新样式

【讨论】:

嗨,尼尔斯,感谢您的回答。我能够使用该线程弄清楚它。我会写一个更详细的答案,对于 VS2022 来说是最新的

以上是关于如何在类模板中使用文件范围的命名空间声明?的主要内容,如果未能解决你的问题,请参考以下文章

实际场景中的代表:在命名空间范围内的类范围内

整个类范围内的 C++ 命名空间别名

EditorConfig 控件文件范围的命名空间声明

EditorConfig 控件文件范围的命名空间声明

为啥我们不能在一个类中声明一个命名空间?

限制头文件中“使用命名空间”的范围