Visual Studio 2017自动格式化单行if语句没有大括号

时间:2018-04-10 17:56:08

标签: visual-studio if-statement ide visual-studio-2017 autoformatting

如果语句简洁明了,并且语义清晰(设想示例),我总是写下简单的一行if语句:

c = np.array([0])

result = [xv if c else yv for (c, xv, yv) in zip(c==0, np.array([1]), np.log(c))]

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

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

    // ...
}

我不喜欢后者(是的,我知道有些人不喜欢我实际上想要想要的样式),每次我复制并粘贴代码时它会自动重新格式化。我已经接近完全关闭格式以防止这种情况,但有没有人知道是否有切换来改变这一点而不会对其他一切产生负面影响?我已经通过选项搜索了所有听起来相关的内容,但没有运气。 VS2013 +一直支持这种风格,如果我没记错的话,它甚至可以在VS2017首次亮相时使用。

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

2 个答案:

答案 0 :(得分:1)

在进一步挖掘解决方案中存在.editorconfig文件之后,结果证明了这一点。显然,这会在VS选项对话框中以静默方式覆盖您的全局设置。我打算删除这个问题,但也许这将对其他人有用。

答案 1 :(得分:0)

.editorconfig文件中,设置"csharp_preserve_single_line_statements = true"