Visual Studio 2017 C#格式化:单行if语句

11
在 Visual Studio 2017 中使用 C#,是否有一种方法可以让单行 if 语句保持在一行而不影响其他控制块的格式?在“文本编辑器 > C# > 代码样式 > 格式 > 新行”下的“在控制块开头放置大括号”规则将允许 if 语句保持在一行,但也会强制所有其他控制块的花括号在同一行。
例如,我想保留以下语句的格式:
if(x == null) { return; }

而不是自动格式化为这个样子:

if(x == null)
{ return; }

同时也允许其他控制语句保持它们的花括号放在下一行,就像这样:

foreach(string s in strings)
{
    ....
}

3
不确定VS2017在这方面是否有更改,但在VS2015中,可以在选项对话框的“文本编辑器”--> “C#” --> “格式设置” --> “换行”下更改自动格式化的行为。 - user2819245
你尝试过在行末不按回车键吗? - vipersassassin
@vipersassassin 这是一个自动格式化规则。 - Matt Kemmer
2
@elgonzo 啊,"将语句和成员声明放在同一行"的规则可以解决这个问题(尽管它也会将多个变量声明放在同一行,但我也不想要,不过这比单行if语句要少得多)。谢谢! - Matt Kemmer
如果(x == null)返回; - D. Kermott
1个回答

14

正如elgonzo的评论所建议的那样,控制行为的方法是进入“工具”菜单,然后选择选项 -> 文本编辑器 -> C# -> 代码样式 -> 格式化 -> 换行

勾选“将语句和成员声明放在同一行”


1
这让我抓狂了!谢谢,谢谢,谢谢! - Mark
在VS2022中相同。 - Steve Lautenschlager

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接