使用 C# 在 Visual Studio 中的命名空间缩进

Posted

技术标签:

【中文标题】使用 C# 在 Visual Studio 中的命名空间缩进【英文标题】:Namespace indentation in Visual Studio with C# 【发布时间】:2013-05-17 05:56:54 【问题描述】:

Visual Studio 在命名空间内缩进代码。在全局禁用缩进时可以避免这种情况,这不是我想要的。在所有其他情况下,缩进很好,我只是不喜欢所有代码都是一个级别的事实 - 这让我看起来很难看。

namespace X

    public class A
    

我更喜欢这样:

namespace X

public class A




在 C++ 中,有一个很好的解决方法,如 here 所述:

namespace X
; // the ; after opening brace makes visual studio not indent the class below.

class A
;


但是在 C# 中,命名空间不能直接包含字段,所以这不起作用。

如何让 Visual Studio 在不全局禁用缩进的情况下停止缩进命名空间?

更新 Visual Studio 2013 行为 C++ 已更改

Tools->Options->C/C++->Formatting->Indentation: [ ] Indent namespace contents 

启用我喜欢的格式,而 ;诡计不再起作用了。但我找不到 C# 的任何变化。

【问题讨论】:

我只是在开玩笑/讽刺!这似乎是一个奇怪的问题,因为我从来没有在任何接受这种代码格式的地方工作过!大多数现代显示器都是宽屏的,无论是否使用前导选项卡,都不会产生太大影响! 我还想知道为什么人们会想要做这样的事情,并以我从未见过的方式格式化代码。无论如何,如果有办法让@Wilbert 开心,那就这样吧 - 我不知道 :) 这是个人喜好,但我似乎不是唯一有这种喜好的人。是的,解决这个问题会让我很开心。 是的,这是个人喜好,我希望有一个好的解决方案。启发我这样做的原因是,我有时会复制一些代码,例如从 C# 到 Java/android 的单个方法。结果当然需要编辑,但不必删除额外的缩进会少一个编辑步骤。 任何对此感兴趣的人(并且已被查看超过 500 次)请在此处投票以尝试让 Microsoft 提供此选项:visualstudio.uservoice.com/forums/121579-visual-studio-2015/… 【参考方案1】:
    文本编辑器 → c# → 选项卡 → 缩进 — 设置为“块” 文本编辑器 → c# → 格式化 → 常规 — 关闭每个显示“自动格式化...”的复选框

【讨论】:

请说出复选框是什么,而不是“前两个”。如果 VS 更改其设置对话框,这将有所帮助。并且可能在第二个中删除标签,这是误导。【参考方案2】:

这个问题值得在 2021 年得到新的答案。C#10(随 .NET 6 和 Visual Studio 2022 一起提供)引入了File Scoped Namespaces。它允许以下语法:

namespace Hello.World;

class MyClass

    public static void Main()
    
        Console.WriteLine("Hello, World!");
    

因此,我们可以完全删除命名空间声明添加的缩进。 也支持旧语法。

【讨论】:

以上是关于使用 C# 在 Visual Studio 中的命名空间缩进的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Microsoft Visual Studio 将查询插入到 C# 中的另一个查询中?

可能是 Visual Studio 2015 中的 C# 编译器错误

怎样在visual studio 2008中的c#控制台中用console.writeline语句输出一个字符数组?用foreach循环怎么写

如何在 Visual Studio 中为迷宫设计项目制作 C# 中的图片框?

在 Visual Studio 2013 中使用 MS Access (C#) 生成发票

如何用visual studio2010编译已经写好的C#的源代码