Форматирование / отступ для операторов using (C #)

Когда дело доходит до с использованием операторов в C # (не путать с с использованием директив , которые импортируют пространства имен), Visual Studio не делает отступ однострочный код, который следует, если фигурные скобки не используются. Это типично для "вложенности" операторов с использованием, как показано в этом вопросе SO .

Меня сбивает с толку тот факт, что последующие операторы после с использованием не имеют отступа, в отличие от форматирования оператора if :

// non-indented using statement
using (var myResource = new SomeIDisposableResource())
myResource.Indent(false);

// indented if statement
if (something == true)
    IndentMe();

Есть ли причина не для отступа, или это просто предпочтение?

// indented using statement, but not the default VS formatting
using (var myResource = new SomeIDisposableResource())
    myResource.Indent();

РЕДАКТИРОВАТЬ:

Дальнейшее тестирование показывает, что я ошибался в некоторых аспектах форматирования VS. Если вы наберете оператор using:

using (var myResource = SomeIDisposableResource())

... и нажмете Enter, курсор выровняется с с помощью . Если следующая строка также является оператором using, она продолжит выравнивание. Если это не так, VS сделает отступ после завершения. Таким образом, мой первоначальный вопрос несколько недействителен, потому что мой первый пример на самом деле недостижим, если вы не переопределите форматирование по умолчанию или не используете IDE, которая этого не делает.

Тем не менее, Стоит знать, что несколько операторов using лучше всего рассматривать как один блок, потому что технически так и есть. Отсутствие отступов применимо только тогда, когда операторы являются последовательными с использованием операторов без фигурных скобок; и когда к этому привыкаешь, они перестают выглядеть такими необычными.

Как всегда, спасибо всем, кто ответил за понимание и опыт даже в этих незначительных деталях программирования.

13
задан Community 23 May 2017 в 11:53
поделиться