对于C# 中的语句(不要与导入命名空间的指令using
混淆),如果没有使用大括号,Visual Studio 不会缩进后面的单行代码。这是典型的“嵌套”使用语句,如这个 SO question中所示。using
我发现后面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();
编辑:
进一步的测试表明我对某些 VS 格式化行为是不正确的。如果您键入 using 语句:
using (var myResource = SomeIDisposableResource())
...然后按 Enter,光标将与using
. 如果下一行也是 using 语句,则继续对齐。如果不是,VS 将在完成时缩进它。因此,我最初的问题有些无效,因为我的第一个示例实际上无法实现,除非您覆盖默认格式或使用不这样做的 IDE。
尽管如此,值得知道的using
是,最好将多个语句视为一个块,因为它们在技术上是。仅当语句是using
没有大括号的连续语句时,没有缩进才适用;随着人们习惯了它,它们看起来不再那么不寻常了。
一如既往地感谢所有在这些次要编程细节方面提供洞察力和经验的人。