【问题标题】:Namespace indentation in Visual Studio with C#使用 C# 在 Visual Studio 中的命名空间缩进
【发布时间】: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/…

标签: c# visual-studio visual-studio-2012 indentation


【解决方案1】:
  1. 文本编辑器 → c# → 选项卡 → 缩进 — 设置为“块”
  2. 文本编辑器 → 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!");
    }
}

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

【讨论】:

    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2021-01-04
    • 2022-01-21
    相关资源
    最近更新 更多