Когда дело доходит до операторов using
в С# (чтобы не путать с директивами using
, которые импортируют пространства имен), Visual Studio не будет указывать однострочный код отступа, если не используются фигурные скобки. Это типично для "вложенности" с использованием утверждений, как показано в этом вопросе SO.
Я сбиваю с толку, что последующие утверждения после using
не имеют отступ, в отличие от форматирования оператора 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();
EDIT:
Дальнейшее тестирование показывает, что я был некорректен относительно некоторых правил форматирования VS. Если вы введете оператор using:
using (var myResource = SomeIDisposableResource())
... и нажмите enter, курсор выровнятся с using
. Если следующая строка также является оператором using, она будет продолжать выравниваться. Если это не так, VS будет отступать после завершения. Таким образом, мой первоначальный вопрос несколько недействителен, потому что мой первый пример не является реально достижимым, если вы не отмените форматирование по умолчанию или не используете среду IDE, которая этого не делает.
Тем не менее, стоит знать, что несколько операторов using
лучше всего рассматривать как один блок, потому что они технически являются. Отсутствие отступов применяется только тогда, когда операторы являются последовательными операторами using
без брекетов; и, как только к нему привыкнуть, они перестают выглядеть так необычно.
Как всегда, благодаря всем тем, кто ответил за понимание и опыт даже в этих незначительных деталях программирования.