Visual studio Visual Studio 2017自动格式化不带大括号的单行if语句

Visual studio Visual Studio 2017自动格式化不带大括号的单行if语句,visual-studio,if-statement,ide,visual-studio-2017,autoformatting,Visual Studio,If Statement,Ide,Visual Studio 2017,Autoformatting,我总是用以下风格编写简单的单行if语句,它们简洁且语义清晰(人为示例): 然而,从VS2017的某些版本开始,它现在坚持认为上述内容应成为: foreach (var item in list) { if (item == null) continue; // ... } 我不喜欢后者(是的,我知道有些人会不喜欢我真正想要的样式),每次我复制和粘贴代码时,它都会自动重新格式化。为了防止这种情况,我几乎完全关闭了格式设置,但是有人知道是否有一种切换可以在不影响其

我总是用以下风格编写简单的单行if语句,它们简洁且语义清晰(人为示例):

然而,从VS2017的某些版本开始,它现在坚持认为上述内容应成为:

foreach (var item in list)
{
    if (item == null)
        continue;

    // ...
}
我不喜欢后者(是的,我知道有些人会不喜欢我真正想要的样式),每次我复制和粘贴代码时,它都会自动重新格式化。为了防止这种情况,我几乎完全关闭了格式设置,但是有人知道是否有一种切换可以在不影响其他任何事情的情况下改变这种设置吗?我在选项中搜索了一遍,尝试了所有听起来相关的东西,但没有运气。这种风格在VS2013+中一直得到支持,如果我没记错的话,它甚至在VS2017首次推出时也能工作


更改“在同一行上保留语句和成员声明”选项无效。

经过进一步挖掘后,发现解决方案中有一个
.editorconfig
文件。显然,这会自动覆盖VS选项对话框中的全局设置。我本来打算删除这个问题,但这也许将来对其他人有用。

在进一步挖掘后发现解决方案中有一个
.editorconfig
文件。显然,这会自动覆盖VS选项对话框中的全局设置。我本来打算删除这个问题,但这可能对将来的其他人有用。

.editorconfig
文件中,设置
“csharp\u preserve\u single\u line\u statements=true”
文件中,设置
“csharp\u preserve\u single\u line\u statements=true”

可能重复我在上述答案中提到的区域中尝试了两种设置,但上面提到的选项/答案似乎是您描述的行为的控制因素。@GreggL感谢您的回答。我以前确实找到过这个问题/答案,但选项建议我检查一下,它仍在将问题移到两行。这里可能有一些设置的组合?可能是重复的我在上面的回答中提到的区域中尝试了这两个设置,上面提到的选项/答案似乎是你描述的行为的控制因素。@GreggL谢谢你的回答。我以前确实找到过这个问题/答案,但选项建议我检查一下,它仍在将问题移到两行。可能是游戏中的一些设置组合?啊,很好的发现。由于.editorconfig文件不是由VS自动生成的(据我所知),因此您的文件是如何创建的?@GreggL一位在MacOS上工作的开发人员在5个月前提交的。很长一段时间都在受苦。谢谢你的帮助。啊,好发现。由于.editorconfig文件不是由VS自动生成的(据我所知),因此您的文件是如何创建的?@GreggL一位在MacOS上工作的开发人员在5个月前提交的。很长一段时间都在受苦。谢谢你的帮助。
foreach (var item in list)
{
    if (item == null)
        continue;

    // ...
}