JYe*_*ton 13 c# formatting using-statement
当谈到using在C#中的语句(不要与混淆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();
Run Code Online (Sandbox Code Playgroud)
有没有理由不缩进,或者只是偏好?
// indented using statement, but not the default VS formatting
using (var myResource = new SomeIDisposableResource())
myResource.Indent();
Run Code Online (Sandbox Code Playgroud)
编辑:
进一步测试显示我对某些VS格式化行为不正确.如果键入using语句:
using (var myResource = SomeIDisposableResource())
Run Code Online (Sandbox Code Playgroud)
...然后按Enter键,光标将与之对齐using.如果下一行也是using语句,它将继续对齐.如果不是,VS将在完成后缩进.因此,我的原始问题有些无效,因为除非您覆盖默认格式或使用不执行此操作的IDE,否则我的第一个示例实际上无法实现.
但是,值得知道的是,多个using语句最好被视为单个块,因为它们在技术上是一样的.缺少缩进仅适用于语句是using没有大括号的顺序语句; 当一个人习惯了,他们就不再那么寻常了.
一如既往地感谢所有那些为这些小编程细节提供见解和经验的人.
Jon*_*eet 24
正如其他人所说,总是使用大括号.然而,有一个习惯用法有点违背这个并使用"非缩进":
using (Resource1 res1 = new Resource1())
using (Resource2 res2 = new Resource2())
using (Resource3 res3 = new Resource3())
{
// Do stuff with res1, res2 and res3
}
Run Code Online (Sandbox Code Playgroud)
但是我总是使用大括号作为最里面的块:)
kem*_*002 13
这是偏好.我总是缩进,并将必要的项目放在括号中
using(var t = new t())
{
t.Foo();
}
Run Code Online (Sandbox Code Playgroud)
轻松修复:始终使用显式块,即使是单行也是如此.然后,Visual Studio将正确缩进,作为奖励,您的代码将更易于维护!
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |