如何防止在单行 if 语句之间放置空行?
How to prevent empty lines being places between single-line if statements?
在 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 始终取代它们时,这会非常令人恼火。
您要查找的设置可以通过以下导航找到: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
并且您将在使用单行块时获得所需的格式设置行为。
在 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 始终取代它们时,这会非常令人恼火。
您要查找的设置可以通过以下导航找到: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
并且您将在使用单行块时获得所需的格式设置行为。