首页 > 解决方案 > VS2019 - 为对象、集合和数组初始化器插入新行不起作用

问题描述

VS2019 中的 insert New Line 设置似乎不适用于对象、集合和数组初始值设定项。它适用于所有其他情况,但对于这些类型它不起作用,例如:

// result:
int i = new int[] {};

// expected:
int i = new int[]
{
    <cursor here>
};

我尝试了什么:

Text editor > C# > Code Style > Formatting > New Lines

检查了新行的所有选项。

Resharper

将所有可能的新行选项设置为 BSD 样式(插入新行)。

.editorconfig

自动生成此文件以尝试在某处覆盖另一个文件(如果有)。 csharp_new_line_before_open_brace = all被设置在那里。

以上都没有奏效。我禁用了 IntelliCode 扩展并删除了 .editorconfig,重新启动了 VS,没有运气。这些解决方案似乎在某些情况下有效,但不适用于我的设置。请注意,我禁用了自动大括号完成/关闭。

我错过了一些明显的东西吗?

标签: c#settingsvisual-studio-2019

解决方案


我可能需要和你确认一些事情,你的意思是当你在大括号中按“enter”时,结果会像这样

int[] i = new int[] {

};

而不是像预期的那样格式化?如果我误解了你,请随时告诉我。

建议

如果是,根据我的测试,请再次检查您是否选择了此选项:从工具 > 选项 > 文本编辑器 > C# > 代码样式 > 格式 > 新建行 > “在对象、集合和数组初始化器的新行上放置左大括号”。

在此处输入图像描述

此外,重置 Visual Studio 设置将解决此问题并将设置设置为默认值,如果您没有更改或自定义 VS 中的其他一些设置,您可以考虑并尝试此操作。(工具>导入和导出设置...>重置所有设置>选择“不,只是重置设置,覆盖我当前的设置”>常规>完成)


推荐阅读