在Rider(基本上是不认识的人使用的独立ReSharper)中,我无法弄清楚为什么自动代码格式化会在if语句之间留空行。
格式化之前:
string output = "";
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }
格式化后:
string output = "";
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }
我无法终生知道这样做的设置,但是当您将多个相似的单行if语句组合在一起并且Rider / ReSharper始终将它们替换时,这会很令人烦恼。
答案 0 :(得分:3)
您要查找的设置可以通过以下导航找到:File -> Settings -> Editor -> Code Style -> C# -> Blank Lines
在Blank Lines in Code
小节下,您正在寻找After statements with child blocks
。这种特殊设置在您的情况下要添加行的原因是包含了括号。
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
也可以写为
if (i % 3 == 0) output += "Fizz";
if (i % 5 == 0) output += "Buzz";
该语句将不再被视为具有子块,因此不受影响。如果保留花括号是您想要的样式的一部分,则可以将After statements with child blocks
的值设置为0
,使用单行块时将获得所需的格式化行为。