【发布时间】:2018-12-04 00:50:59
【问题描述】:
在 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 一直在替换它们时,这非常令人恼火。
【问题讨论】:
-
更正:Rider 是一个 IDE; ReSharper 是一个代码分析工具。
-
File -> Settings -> Editor -> Code Style -> C# -> Blank Lines) Blank Lines in Code: 'After statements with child blocks' 你有什么价值?如果将此值设置为 0,它是否按预期工作? -
@John 你是对的,但是 Rider 使用相同的代码分析技术,并且与 ReSharper 有很多相似之处,因为它们都是由 JetBrains 开发的。
-
但这并不能使 Rider 成为“独立的 ReSharper”。这只是意味着他们在 Rider IDE 中包含了他们的代码分析工具 (ReSharper)。如果它是一个独立的 ReSharper,它将能够分析代码但不允许您编辑或编译它等。
-
@JonathonChase 是的,效果很好。正是我需要的,谢谢。随意在下面添加一个问题答案,以便我可以将其标记为已解决。如果没有,我会自己为将来有类似/相同问题的其他人做。