15

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

namespace X
{
    public class A
    {}
}

我更喜欢这样:

namespace X
{
public class A
{

}
}

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

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# 的任何变化。

4

2 回答 2

9
  1. 文本编辑器 → c# → 选项卡 → 缩进 — 设置为“块”
  2. Text Editor → c# → Formatting → General — 关闭每个“自动格式化...”的复选框
于 2016-07-11T19:08:07.033 回答
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!");
    }
}

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

于 2021-10-16T20:24:35.973 回答