【发布时间】:2014-11-12 20:47:53
【问题描述】:
这看起来像一个愚蠢的问题,但我无法找到解决方案。
我的问题是 C# 不允许在单个 lock 语句中获取多个锁。这行不通:
lock (a, b, c, d)
{
// ...
}
相反,它似乎需要大量的缩进才能做到这一点:
lock (a)
lock (b)
lock (c)
lock (d)
{
// ...
}
再加上代码已经存在的所有其他缩进级别(命名空间、类、方法、条件、循环……),这变得疯狂。因此,我想使用这种格式:
lock (a) lock (b) lock (c) lock (d)
{
// ...
}
并保持我的理智。但是 Visual Studio(我正在使用 2012)不会听说它。一旦我输入任何右括号,上面的内容就会变成一些愚蠢的东西,比如:
lock (a) lock (b) lock (c) lock (d)
{
// ...
}
而且我似乎无能为力。有什么办法可以做到这一点?
【问题讨论】:
-
您是否安装了 Resharper 或类似软件?
-
@DaveZych 不,我不使用任何第三方模块。
-
希望您不要经常这样做。获取多个锁可能是让自己陷入死锁情况的最简单方法。
-
不是你的问题的答案.. 因此是评论.. 你为什么要使用这么多锁开始.. 你要么有非常复杂和罕见的场景.. 要么这是一个危险信号。
-
你可以关闭自动格式化....
标签: c# visual-studio visual-studio-2012 auto-indent