W Rider (w zasadzie samodzielny ReSharper dla tych, którzy nie wiedzą), nie mogę zrozumieć, dlaczego automatyczne formatowanie kodu umieszcza pustą linię między moimi instrukcjami if.
Przed formatowaniem:
string output = "";
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }
Po formatowaniu:
string output = "";
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
if (output == "") { Console.WriteLine(i); } else { Console.WriteLine(output); }
Za życia nie potrafię wymyślić ustawienia, które to robi, ale jest to dość irytujące, gdy masz wiele podobnych jednowierszowych instrukcji if zgrupowanych razem, a Rider/ReSharper cały czas je przemieszcza.
1 odpowiedź
Ustawienie, którego szukasz, można znaleźć za pomocą następującej nawigacji: File -> Settings -> Editor -> Code Style -> C# -> Blank Lines
W podsekcji Blank Lines in Code
szukasz After statements with child blocks
. Powodem, dla którego to konkretne ustawienie dodaje linie w twoim przypadku, jest włączenie nawiasów klamrowych.
if (i % 3 == 0) { output += "Fizz"; }
if (i % 5 == 0) { output += "Buzz"; }
Może być również napisany jako
if (i % 3 == 0) output += "Fizz";
if (i % 5 == 0) output += "Buzz";
Instrukcje nie będą już uważane za zawierające bloki podrzędne, a zatem nie będą miały na nie wpływu. Jeśli zachowanie nawiasów klamrowych jest częścią pożądanego stylu, możesz ustawić wartość After statements with child blocks
na 0
i uzyskasz pożądane zachowanie formatowania podczas korzystania z bloków jednowierszowych.
Podobne pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.